为什么不进行jquery表单验证工作?

时间:2013-08-25 12:27:58

标签: jquery jquery-validate

我有一个在点击事件后在对话框内打开的表单。我想知道我的jquery中是否存在我没​​有注意到的语法问题。提交处理程序函数中的所有日志都不记录日志。

HTML:

<div id="dialog" title="Thanks For Volunteering">
     <form>
         <p>Please provide a contact number. It will only be shared with the comic</p>
         <input id="number" name="number" type="text" />
         <button id="submit" class="button">Submit</button>    
    </form>   
</div>

JavaScript的:

$("form").submit(function(){

        console.log("submit");
        $('#number').validate({
            rules: {
                  number : {
                    required: true
                    //customvalidation: true
                }                                        
            },
            messages: {
                number : {
                    required: "enter a phone number"                   
                }
            },
            submitHandler: function(form) {
                    // do other stuff for a valid form
                    //submit to parse

                    console.log("now validated");
                    var num = $('#number').val();
                    console.log("validated:" +' '+num);
            }     
        });

    });//closes submit

   $.validator.addMethod("customvalidation",
       function(value, element) {
               return (/^[A-Za-z\d=#$%@_]+$/.test(value));
       },
   "Sorry, no special characters allowed");

2 个答案:

答案 0 :(得分:2)

.validate()方法只是插件的初始化。它永远不会进入submit()处理程序。只需将其附加到您的表单,并在DOM就绪后将其称为一次

$(document).ready(function() {
    $('form').validate({
        .....

您还需要将表单的<button>元素更改为type="submit"

DEMO http://jsfiddle.net/GJggc/1/


请参阅your previous question上的这个答案,该答案还解决了上述两个JavaScript问题以及详细说明:

https://stackoverflow.com/a/18116262/594235

答案 1 :(得分:1)

  

$( '#号')。验证

你有一个错误。它是应该验证的FORM元素,而不是表单字段。

<form id="youform">

....

$('#youform').validate