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/

Reply via email to