Hi, all...

I'm trying to validate form inputs (individually onblur) and post a form
to calculate a mortgage payment.

This method involves jQuery on the client side
and ColdFusion on the server side for validation.

I've worked out the validation with no lingering problems.

I can't figure out how to submit the form.

Online demo:
http://bodaford.whitestonemedia.com/html/trial_field_validation.cfm


Here's the jQ I've got:

<script type="text/javascript">

    // Define CalculateMortgage in the global scope so that it is always
accessible

        function CalculateMortgage(){

            var Params = {};

            // select all inputs of type text
            $("input:text").each(function(){
            Params[$(this).attr("name")] = $(this).val();
            }); // closes input:text function

            // "post" the form.  The Param object mimics form fields
            $.post("callpage_Validate_Mortgage_Inputs.cfm", Params,
function(data){
            // this is the processing function.
         
            // append what you get back to the element with ID = Result
after clearing its contents
            $("#Result").empty().append(data);
        
            } // closes post function
            ); // closes ( after .post 
        } // closes { after CalculateMortgage = function() {


    //$.validator.defaults.debug = true;        
        
        $(document).ready(function(){

                $("#Principal").blur(function(){ 
                $.post("callpage_Validate_Mortgage_Inputs.cfm",
{principal:$("#Principal").val()},
                function (data) {$("#Result_Principal").empty().append(data)
} ) });
        
                $("#Interest").blur(function(){
                $.post("callpage_Validate_Mortgage_Inputs.cfm",
{interest:$("#Interest").val()},
                function (data) {$("#Result_Interest").empty().append(data)
}) });
        
                $("#Years").blur(function(){
        
$.post("callpage_Validate_Mortgage_Inputs.cfm",{years:$("#Years").val()},
                function (data) {$("#Result_Years").empty().append(data) })
});
        
        });

</script>



Here's my HTML:

<Form id="Calculate_Mortgage" Name="Calculate_Mortgage">

<table>

        <tr>
                <td>
                        <Span id="Result_Principal"></span>
                </td>
        </tr>
        
        <tr>
                <td>
                        Principal: <INPUT ID="Principal" Name="Principal"
Type="Text" Value="" Size="20" Class="TextInput01">
                </td>
        </tr>
        
        <tr>
                <td>
                        <Span id="Result_Interest"></span>
                </td>
        </tr>
                
        <tr>
                <td>
                        Interest: <INPUT ID="Interest" Name="Interest"
Type="Text" Value="" Size="20" Class="TextInput01">
                </td>
                
        </tr>
        
        <tr>
                <td>
                        <Span id="Result_Years"></Span>
                </td>
        </tr>
        
        <tr>
                <td>
                        Years: <INPUT ID="Years" Name="Years" Type="Text"
Value="" Size="20" Class="TextInput01">
                </td>
        </tr>
        
        <tr>
                <td>
                        Result:<Span ID="Result"></Span>
                </td>
        </tr>
        
        <tr>
                <td>
                        <INPUT ID="Calculate" Name="Calculate" Type="Submit"
Value="Calculate">
                </td>
        </tr>
        

        
</table>

</Form>


And here's my CF validation and Calculate Payment page:


<CFSET Principal_Error_Message = "">
<CFSET Interest_Error_Message = "">
<CFSET Years_Error_Message = "">

<CFIF IsDefined("Form.Principal")>

                <CFIF Len(Trim(Form.Principal)) and Not
IsNumeric(REReplace(Form.Principal, "[.$,]","","All"))>

                        <CFSET Principal_Error_Message = "Please enter a
valid dollar amount.">

                <CFELSEIF Not Len(Trim(Form.Principal))>
         
                        <CFSET Principal_Error_Message = "Please enter a
value for the Principal.">
         
                </CFIF>

        <CFOUTPUT>#Principal_Error_Message#</CFOUTPUT>
        
</CFIF>


<CFIF IsDefined("Form.Interest")>

                <CFIF Len(Trim(Form.Interest)) and Not
IsNumeric(REReplace(Form.Interest, "[.]","","All"))>
        
                        <CFSET Interest_Error_Message = "Please enter a
valid Interest Rate.">
                
                <CFELSEIF Not Len(Trim(Form.Interest))>
        
                        <CFSET Interest_Error_Message = "Please enter a
value for the Interest Rate.">
                
                </CFIF>
        
        <CFOUTPUT>#Interest_Error_Message#</CFOUTPUT>
        
</CFIF>


<CFIF IsDefined("Form.Years")>

                <CFIF Not Len(Trim(Form.Years))>
        
                        <CFSET Years_Error_Message = "Please enter the
number of years.">
                
                </CFIF>
                
                <CFIF Len(Trim(REReplace(Form.Years, "[0-9]","","All")))
                  and Not IsNumeric(REReplace(Trim(Form.Years),
"[0-9]","","All"))>
                
                     <CFSET Years_Error_Message = "Please enter a valid
number for years.">
                         
                </CFIF>
        
        <CFOUTPUT>#Years_Error_Message#</CFOUTPUT>
        
</CFIF>


<CFIF IsDefined("Form.Principal")
  and IsDefined("Form.Interest")
  and IsDefined("Form.Years")>

<CFIF Principal_Error_Message is ""
  and Interest_Error_Message is ""
  and Years_Error_Message is "">

     <CFSET Interest = Form.Interest/(12*100)>
         
         <CFSET
Payment=Form.Principal*(Interest/(1-(1+Interest)^-(Form.Years*12)))>
         
         <CFCONTENT Reset="yes"><CFOUTPUT>#DollarFormat(Payment)#</CFOUTPUT>

<CFELSE>

     <CFOUTPUT>0</CFOUTPUT>

</CFIF>
</CFIF>


Why won't this work together?
How can I put it together?

I'd love to use a submitHandler with Jorn's Validation plug-in
to prevent submission of the form as long as there are errors.
Is that possible?


Thanks for any help!

Rick




_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to