Hi, Paul... Enjoy your ride yesterday?
Thanks for the example code... it's beginning to make some sense as I study it. However, there one key sticking point... I'm using CF 4.5, so I don't use .cfc's that you asked about when your referenced <cfoutput>#json.encode(st)#</cfoutput> and the json.cfc. Is there another method to pass the result back to the calling page? Can I use the same method I used in my previous attempt at validation the "submitHandler" function? (I guess that's what was responsible for sending the data to and from my MortgageCalucation.cfm page...) Here's that function... submitHandler:function(){ varParams={}; $("input:text").each(function(){ Params[$(this).attr("name")]=$(this).val(); }) $.post("Mortgage_Calculation.cfm",Params,function(data){ $("#Result").empty().append(data); }) } Rick -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Paul Sent: Monday, March 12, 2007 11:26 PM To: 'jQuery Discussion.' Subject: Re: [jQuery] Calling all CF'ers... et al... Okay as promised Will, here's what I do. It's most certainly not the most efficient method, since it's my first go 'round, but it does what I ask it to. I've added a few comments inline for you. (After pasting in here I can't even tell what's going on--and I wrote it! Paste this into your editor to get a clearer view...) A) Here is a snippet of the original html. It simply presents a field/label. <div class="row" id="shipto_location"> <div class="required">Ship-to location:</div> <input type="text" maxlength="75"> <!--- these inputs are all autocomplete text fields ---> <img src="" width="14" height="14" class="ico"> <!--- call $(".row img").hide() on page load ---> </div> B) Here is the jQuery bit that binds a behavior to the blur event. In my case this comes from a Taconite response, but I think you'd need it in your document.ready() function for testing. $("#shipto_location input").blur(function (){ /* when the input within #shipto_location loses focus, pass the name of the input and the value of the customer name input to be validated */ validateField('shipto_location',$("#customer_name input").val()); }); C) As posted before, here is the validateField function called by part B above. function validateField(field, criteria){ /* change the src of the row's icon (in this example, #shipto_location img.ico) to the loading spinny */ $("#"+field+" img.ico").attr("src","/images/office/ico-loading.gif"); /* pass the name of the field to validate, the value of said field, and the value of an optional criteria (in this case, $("#customer_name input").val()) */ $.get("/gateway/validate.cfm?field="+field+"&value="+$("#"+field+" input").val()+"&criteria="+criteria, function(response){ /* evaluate the json response */ response = eval("("+response+")"); /* display the appropriate icon; showIcon can be called after either ajax or local validation */ showIcon(field,response.pass,response.msg); }); } D) Here's the relevant snippet from validate.cfm: <!--- the cfswitch expression is url.field ---> <cfcase value="shipto_location" delimiters="|"> <cfquery name="q" datasource="Yard"> select s.shipto_id from shipto_locations as s inner join customers as c on s.customer_id = c.customer_id where (s.shipto = <cfqueryparam value="#url.value#">) and (c.customer = <cfqueryparam value="#url.criteria#">) </cfquery> <cfif q.recordcount GT 0> <!--- The value of st["pass"] is set to false by default above the cfswitch block ---> <cfset st["pass"]=true> <cfelse> <cfset st["msg"]="'#url.value#' is not a valid #url.criteria# location."> </cfif> </cfcase> ... <!--- after the cfswitch expression, display the struct in json format (you have json.cfc, right?) ---> <cfoutput>#json.encode(st)#</cfoutput> _______________________________________________ jQuery mailing list discuss@jquery.com http://jquery.com/discuss/