0

我有一个在单击事件后在对话框内打开的表单。我想知道我的 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");
4

2 回答 2

2

.validate()方法只是插件的初始化。它永远不会进入submit()处理程序内部。只需将其附加到您的表单并DOM 准备好时调用它。

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

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

演示:http: //jsfiddle.net/GJggc/1/


请在上一个问题上参考此答案,该答案解决了上述两个 JavaScript 问题以及详细说明:

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

于 2013-08-25T14:29:12.807 回答
1

$('#number').validate

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

<form id="youform">

....

$('#youform').validate
于 2013-08-25T13:09:29.030 回答