Jquery mobile .validate()在jQuery Mobile中不工作

Jquery mobile .validate()在jQuery Mobile中不工作,jquery-mobile,jquery-validate,Jquery Mobile,Jquery Validate,这是我第一次使用plugin和.validate()方法。现在我有了一个表单,每次单击submit按钮,它都会运行,而不会执行表单验证。这是我的密码: <form class="form d" method="post" action=""> <input type="text" name="searchtitle" id="searchtitle" placeholder="Enter the textbook's title">

这是我第一次使用plugin和.validate()方法。现在我有了一个表单,每次单击submit按钮,它都会运行,而不会执行表单验证。这是我的密码:

<form class="form d" method="post" action="">
                <input type="text" name="searchtitle" id="searchtitle" placeholder="Enter the textbook's title">
                <input type="text" name="searchauthor" id="searchauthor" placeholder="Enter the textbook's author">
                <input type="text" name="searchpublisher" id="searchpublisher" placeholder="Enter the textbook's Publisher">
                <input type="text" name="searchedition" id="searchedition" placeholder="Enter the textbook's edition">
                <select name="searchuniversity" id="searchuniversity"></select>
                <select name="searchuniversitycampus" id="searchuniversitycampus" ></select>
                <input type="submit" id ="searchsubmit" name="searchsubmit" value="Search">
            </form>
就像我说的,我对表单验证和函数的使用非常陌生


这是问题的一部分。当你点击fiddle中的submit时,它会提示“hello”,然后它会进行验证。如何阻止这种情况发生。i、 e首先验证,然后运行函数?

您的整个问题在于您的
单击
处理程序。该插件已经内置了回调函数,可以捕获submit按钮的
单击事件。使用
submitHandler
在表单有效时启动函数。使用
invalidHandler
在表单无效时触发函数

您的JSFIDLE中已经有了
submitHandler
回调,因此我对您的JSFIDLE代码进行了如下重构:

$(document).on('pageinit', function(){

    $('#myform').validate({ // initialize the plugin
        rules: {
            field1: {
                required: true
            },
            field2: {
                required: true
            }
        },
        submitHandler: function (form) {
            alert("hello");  // stuff to do when form is valid
            alert('valid form submitted'); // for demo
            return false; 
        },
        invalidHandler: function () {
            // stuff to do when form is invalid
            alert("invalid form");  // for demo
        }
    });

    // remove click handler
    // use the plugin's built-in callback functions instead
    //$("#test").click(function(){alert("hello")});

});
演示:


编辑


好的参考资料

你说的“不工作”是什么意思?有JS错误吗?当我点击表单上的搜索按钮时,它会运行$(“#searchsubmit”)。点击();函数而不是验证表单使用表单的
id
,并将其分配给
。validate()
非常感谢您的回复!!
$(document).on('pageinit', function(){

    $('#myform').validate({ // initialize the plugin
        rules: {
            field1: {
                required: true
            },
            field2: {
                required: true
            }
        },
        submitHandler: function (form) {
            alert("hello");  // stuff to do when form is valid
            alert('valid form submitted'); // for demo
            return false; 
        },
        invalidHandler: function () {
            // stuff to do when form is invalid
            alert("invalid form");  // for demo
        }
    });

    // remove click handler
    // use the plugin's built-in callback functions instead
    //$("#test").click(function(){alert("hello")});

});