如何检查一个表单是否有效使用jQueryvalidation插件程序化
我有一个与几个button的forms,我使用jQueryvalidation插件从http://jquery.bassistance.de/validate/ ,我只是想知道是否有一种方法,我可以检查表单是否被考虑在我的JavaScript代码中的任何地方通过jQueryvalidation插件的有效状态。
使用.valid()
:
$("#form_id").valid();
检查选定的表单是否有效,或所有选定的元素是否有效。 在使用此方法检查之前,需要在表单上调用validate()。
其中id='form_id'
的表单是一个已经调用了.validate()
的表单。
2015答案:我们在现代浏览器上开箱即用,只需使用jQuery中的HTML5 CheckValidity API即可 。 我也做了一个jquery-html5-validity模块来做到这一点:
npm install jquery-html5-validity
然后:
var $ = require('jquery') require("jquery-html5-validity")($);
那么你可以运行:
$('.some-class').isValid() true
iContribute:一个正确的答案永远不会太晚。
var form = $("form#myForm"); if($('form#myForm > :input[required]:visible').val() != ""){ form.submit(); }else{ console.log("Required field missing."); }
通过这种方式,“必填”字段的基本HTML5validation不会干扰使用表单“名称”值的标准提交。
@mikemaccana答案是有用的。
我也使用https://github.com/ryanseddon/H5F 。 在http://microjs.comfind。; 这是一种polyfill,你可以使用它如下(在例子中使用jQuery):
if ( $('form')[0].checkValidity() ) { // the form is valid }
对于一组input,您可以使用基于@ mikemaccana的答案的改进版本
$.fn.isValid = function(){ var validate = true; this.each(function(){ if(this.checkValidity()==false){ validate = false; } }); };
现在你可以使用它来validation表单是否有效:
if(!$(".form-control").isValid){ return; }
您可以使用相同的技术来获取所有错误消息:
$.fn.getVelidationMessage = function(){ var message = ""; var name = ""; this.each(function(){ if(this.checkValidity()==false){ name = ($( "label[for=" + this.id + "] ").html() || this.placeholder || this.name || this.id); message = message + name +":"+ (this.validationMessage || 'Invalid value.')+"\n<br>"; } }) return message; }