使用JQueryvalidationvalidation字段而不提交任何内容?

我有一个HTML5 Web应用程序,其中包含许多用户输入的字段,我想在将这些字段发送到服务器之前对这些字段进行一些客户端validation。 容易吗? 只需使用JQueryvalidation插件— http://jqueryvalidation.org/

但是有一个问题。 我的网络应用没有表格。 HTML中的任何地方都没有提交。 相反,每个用户可更改的元素上都有一个JQuery更改处理程序,当用户更改其中一个元素的值时,将进行AJAX调用。 (这种非标准的用户交互架构对此应用程序有意义。)

我想在AJAX调用之前validation该字段,并使用JQueryvalidation插件来执行此操作。 但我无法弄清楚如何。

是否可以在没有提交的情况下使用JQueryvalidation插件? 我该怎么办? 还是另一种方法更好?

首先 ,最重要的是,您必须将输入元素包装在

标记内,以便jQuery Validate插件运行。 但是,不需要提交按钮。

其次 ,您可以使用.valid()方法以编程方式触发任何或所有元素的有效性测试,而无需提交按钮。

 $(document).ready(function() { $('#myform').validate({ // initialize the plugin on your form. // rules, options, and/or callback functions }); // trigger validity test of any element using the .valid() method. $('#myelement').valid(); // trigger validity test of the entire form using the .valid() method. $('#myform').valid(); // the .valid() method also returns a boolean... if ($('#myform').valid()) { // something to do if form is valid } }); 

演示 : http : //jsfiddle.net/URQGG/

您必须在表单中包装您的字段才能使用validation插件,无论如何这都是一个很好的做法 。 此外,您可以通过编程方式调用插件的validation,并通过执行以下操作检查表单是否有效:

 var $form = $('#your_form'), validator = $form.validate({...}); //validate the form validator.form(); //check if the form is valid if ($form.valid()) { //form is valid } 

有关更多选项,请查看文档 。

我创造了一个小帮手。 只需添加这行代码,然后您就可以在任何地方使用任何按钮。

 $("body [data-submit-form]").on("click", function (event) { $("#" + $(event.target).data('submit-form')).valid(); }); 

说明:jquery代码侦听具有属性“data-submit-form”的元素的所有单击,在侦听器中提取data-attribute,然后在匹配的表单上触发有效方法。

注意:如果您希望在表单有效时提交表单,请使用以下代码:

 $("body [data-submit-form]").on("click", function (event) { var form = $("#" + $(event.target).data('submit-form')); if (form.valid()) { form.submit(); } });