vto*_*ola 3 asp.net-mvc jquery-validate jsfiddle unobtrusive-validation
我无法使这个jsFiddle工作,但它在浏览器中工作:http://jsfiddle.net/vtortola/jYq2X/
我正在尝试添加新的自定义规则来比较两个字段.自定义适配器工作,正在调用它并设置选项.但是从不调用自定义方法.
我在DOM上执行这个JS就绪:
$.validator.addMethod("customequal-method", function (val, el, p) {
var $other = $(el).closest('form').find('input[name=' + p.other + ']');
return $other.length && $other.val() == val;
});
$.validator.unobtrusive.adapters.add("customequal", ["other"],
function (options) {
options.rules["customequal-method"] = options.params;
options.messages["customequal-method"] = options.message;
});
$(function(){
$.validator.unobtrusive.parse($('#myform'));
$('[type=button]').click(function(e){e.preventDefault(); $('form').valid();});
$('input[type=text]').blur();
})
Run Code Online (Sandbox Code Playgroud)
这些是HTML中的字段:
<input type="text" name="StartDate2" id="StartDate2" value="2"
data-val="true" data-val-customequal="xx xxx" data-val-customequal-other="EndDate2"/>
<input type="text" name="EndDate2" id="EndDate2" value="3"
data-val="true" data-val-customequal="xx xx" data-val-customequal-other="StartDate2"/>
Run Code Online (Sandbox Code Playgroud)
我一直在尝试不同的东西,但似乎没有任何作用.
任何的想法?
所有代码都在DOM中运行,因此您unobtrusive.adapters.add在调用unobtrusive.validator插件后添加自定义,该插件unobtrusive.parse(document)在没有自定义验证器的情况下注册所有输入
如果多次调用.validate(),它只会首次注册规则,并且在后续调用时不会覆盖它们.因此,虽然unobtrusive.parse这次添加自定义适配器时再次调用DOM,但它仍然没有任何效果.
在DOM加载事件之前注册自定义适配器,您可以通过更改要使用的小提琴来执行此操作
"No wrap - in <head>"
Run Code Online (Sandbox Code Playgroud)
演示JSFiddle.
删除已添加验证对象使用$('#myform').data('validator', null)调用之前unobtrusive.parse手动:
$(function () {
$('#myform').data('validator', null);
$.validator.unobtrusive.parse($('#myform'));
$('[type=button]').click(function (e) {
e.preventDefault();
$('form').valid();
});
$('input[type=text]').blur();
})
Run Code Online (Sandbox Code Playgroud)
演示JSFiddle.
| 归档时间: |
|
| 查看次数: |
2262 次 |
| 最近记录: |