我可以通过致电
$form.validate()
和 $form.valid()
来验证我的表格。因此,大概这些函数会在提交表单时自动调用。
但我的问题是:如果我有自定义验证函数,如何才能使其在调用这些验证方法时自动调用?也就是说,我希望在提交表单时调用我的验证函数,但也希望手动调用
$form.validate()
和 $form.valid()
时调用。
您可以使用
$.validator.addMethod
。因此,如果您有需要自定义验证规则的输入,您可以将自定义方法添加到验证过程中。
<label for="MyCustomValidation">My Custom Validation</label>
<input type="text" name="MyCustomValidation" id="MyCustomValidation" data-val="true" data-val-required="This field is required." data-rule-custom="Custom validator triggered." class="form-control" />
<span data-valmsg-for="MyCustomValidation" data-valmsg-replace="true"></span>
然后在 javascript 中
function MyCustomValidator() {
if (typeof $.validator === 'undefined')
return;
$.validator.addMethod('custom', function (value, element) {
var result = false;
this.elementid = element.id;
if (value === 'custom') {
result = true;
}
return this.optional(element) || result;
}, function () {
return $('#' + this.elementid).attr('data-rule-custom');
});
}