2013-09-17 3 views
0

Я использую проверку формы JQuery, валидация работает, но моя форма по-прежнему отправляется. Я попытался добавить «return false», но безрезультатно. В онлайн-документации также, похоже, отсутствуют действительные действия по представлению формы.Проверка формы JQuery предотвращает отправку формы

Вот мой код:

$(function(){ 

    $("form#ticketSubmit").validate({ 

      rules:{ 

       name:{ 
        required: true, 
        number: false 
       } 

      } 

    }); 

    $('form#ticketSubmit').submit(function(){ 

      // DO SOME AJAX 

    }); 

}); 

Спасибо!

+0

Это не показывает каких-либо проблем. Не могли бы вы добавить код 'submit'? –

+0

Вы пытаетесь выполнить проверку ajax? Else try '.on ('submit', function() {...' – sakhunzai

+0

@Jeevan Jose, если я поместил какой-либо другой код в первое событие, связывая его с сообщениями об ошибках кода ... –

ответ

0

Надеется, что вы забыли включить jquery.validation.js.

Try:

$(document).ready(function() { 
    $("form#ticketSubmit").validate({ 
      rules:{ 
       name:{ 
      required: true, 
        number: false 
       } 
      }   
    });  
    // if the "save to report" form is submitted 
    var isvalidate=$("#form#ticketSubmit").valid();  
    if(isvalidate){  
      $('form#ticketSubmit').submit(function(e){ 
       e.preventDefault(); 
       var dataString=$(this).serialize(); 
       // Do some AJAX 
      }); 
    } 
}); 

DEMO FIDDLE

+1

Я все еще получаю форму отправки –

+0

' preventDefault() 'перестанет отправлять форму. http://jsfiddle.net/5gLD8/. Поделитесь своим кодом в скрипте, это будет полезно для нас. – Unknown

+0

, но это не использует тот же метод проверки ... –

3
$(function(){ 

    $("form#ticketSubmit").validate({ 

      rules:{ 

       name:{ 
        required: true, 
        number: false 
       } 

      } 

    }); 


    $('form#ticketSubmit').submit(function(){ 
    var isvalidate=$("#form#ticketSubmit").valid(); 
      if(!isvalidate) 
      { 
       e.preventDefault(); 
       alert("invalid"); 
      }else{ 
    e.preventDefault(); 
    //Do AJAX 
    } 

     }); 
}); 
+0

Следует предотвращать по умолчанию независимо ofvalidate. –

+0

использование предотвратить по умолчанию wen подтверждать возвращает false потому что мы используем форму.submit .. – Shashank

+0

Ajax не запускается поскольку форма будет отправлять и перезагружать страницу. –

0
$(function(){ 

     $("form#ticketSubmit").validate({ 

       rules:{ 

        name:{ 
         required: true, 
         number: false 
        } 

       } 

     }); 



     var isvalidate=$("#form#ticketSubmit").valid(); 
       if(!isvalidate) 
       { 

        alert("invalid"); 
       }else{ 
    $('form#ticketSubmit').submit(function(){ 
event.preventDefault(); 
     //Do AJAX 
    }); 
     } 


    }); 

Use this 
+0

, что не работает, теперь форма отправляет и не выполняет вызов ajax –

0

Вы должны использовать submitHandler вариант JQuery Validate:

$("form#ticketSubmit").validate({ 
     rules:{ 
      name:{ 
       required: true, 
       number: false 
      } 
     }, 
     submitHandler: function(form){ 
      var data=$(form).serialize(); 
      //do your ajax with the data here 
     } 

}); 
2
Working Example see whether this is use-full... 


<html> 
     <head> 
     <title>Bootstrap 101 Template</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <link href="css/bootstrap.min.css" rel="stylesheet"> 
    <link rel="stylesheet" href="http://jquery.bassistance.de/validate/demo/site-demos.css"> 
    <link href="css/bootstrap-responsive.css" rel="stylesheet"> 
    <script src="http://code.jquery.com/jquery.js"></script> 
    <script src="js/bootstrap.min.js"></script> 
    <script src="js/bootstrap.js"></script> 
    <script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script> 
    <script src="http://jquery.bassistance.de/validate/additional-methods.js"></script> 
    <script type="text/javascript"> 



    jQuery.validator.addMethod("lettersonly", function(value, element) { 
     return this.optional(element) || /^[a-z]+$/i.test(value); 
    }, "Letters only please"); 

     jQuery.validator.setDefaults({ 
     debug: true, 
     success: "valid" 
    }); 
    $(function(){ 
    $('#myForm').validate({ 
    rules: { 
      myPrice:{ 
       required: true, 
       lettersonly: true 
       //number: false 
       //denominationCheck:true 
       } 
      } 

     }); 

     $('#submit').click(function(){ 


      if($('#myForm').valid()) 
      { 
      //doAjax 
      }else{ 
      alert("invalid credentials"); 
      } 

     }); 

    }); 

    </script> 
     </head> 
     <body>  

       <form id="myForm"> 
       <input id="myPrice" type="text" name="myPrice" style="float: left;"/><br> 
       <button id="submit">Validate!</button> 
       </form> 
     </body> 

    </html> 
Смежные вопросы