Try to move the code in your own submit handler to the submitHandler-callback:

 $(document).ready(function() {
       $.validator.addMethod("phone", function(ph, element) {
       if (ph == null) {
       return false;
       }
       var stripped = ph.replace(/[\s()+-]|ext\.?/gi, "");
       // 10 is the minimum number of numbers required
       return ((/\d{10,}/i).test(stripped));
       }, "Please enter a valid phone number");

       $("#post_form").validate({
         rules: {
           phone: {
             required: true,
             phone: true
           }
         },
         submitHandler: function(form) {
             var data = {}
                   data.name = $(form).find('inp...@name=name]').val();
                       data.email = $(form).find('inp...@name=email]').val();
                       data.phone = $(form).find('inp...@name=phone]').val();
                       data.comments =
$(form).find('inp...@name=comments]').val();

         // suppose our django app called 'testapp'
         $.post("/user/scheduleshowing/T33432123/",
             data,
             function(responseData) {
               $("#fade").fadeOut("slow");
                           $("#done").html('<p class="bold">Thank you
for your interest.
An associate will contact you shortly.</p>');
             },
             "json"
         );
         }
       });

 });

Jörn

On Sun, Jan 25, 2009 at 6:46 PM, issya <floridali...@gmail.com> wrote:
>
> Hello, I am using a few plugins together for AJAX forms and
> validation. I have validation on the name and phone fields. If you add
> a class of required to the fields, the validation plugin will
> automatically validate them. If you want to do more advanced
> validation you have to tell it so.
>
> I have the below code and if I don't if I fill out the form but put
> non integer values in the phone number field it will tell me to put a
> valid number. But if I click on submit a second time it will let the
> form post. Even though I did not fill in a valid phone number. What am
> I doing wrong?
>
>  $(document).ready(function() {
>        $.validator.addMethod("phone", function(ph, element) {
>        if (ph == null) {
>        return false;
>        }
>        var stripped = ph.replace(/[\s()+-]|ext\.?/gi, "");
>        // 10 is the minimum number of numbers required
>        return ((/\d{10,}/i).test(stripped));
>        }, "Please enter a valid phone number");
>
>        $("#post_form").validate({
>          rules: {
>            phone: {
>              required: true,
>              phone: true
>            }
>          }
>        });
>      $('#post_form').submit(function(event){
>          event.preventDefault(); // cancel the default action
>          var form = this;
>              var data = {}
>                    data.name = $(form).find('inp...@name=name]').val();
>                        data.email = $(form).find('inp...@name=email]').val();
>                        data.phone = $(form).find('inp...@name=phone]').val();
>                        data.comments = 
> $(form).find('inp...@name=comments]').val();
>
>          // suppose our django app called 'testapp'
>          $.post("/user/scheduleshowing/T33432123/",
>              data,
>              function(responseData) {
>                $("#fade").fadeOut("slow");
>                            $("#done").html('<p class="bold">Thank you for 
> your interest.
> An associate will contact you shortly.</p>');
>              },
>              "json"
>          );
>      });
>  });
>

Reply via email to