小编aph*_*aph的帖子

动态更改jQuery不显眼的验证属性

我有一个在ASP.NET MVC 4中构建的页面,它使用jquery.validate.unobtrusive库进行客户端验证.有一个输入需要在一个数字范围内.但是,此范围可以根据用户与表单其他部分的交互动态更改.

默认值验证正常,但是在更新data-rule-range属性后,仍会在原始值上触发验证和消息.

以下是初始页面加载的输入:

<input id="amount" data-rule-range="[1,350]" data-msg-range="Please enter an amount between ${0} and ${1}">
Run Code Online (Sandbox Code Playgroud)

Please enter an amount between $1 and $350如果输入的数字大于350,则会正确验证消息.

事件在其他地方触发后,data-rule-range会更新,元素看起来如下:

<input id="amount" data-rule-range="[1,600]" data-msg-range="Please enter an amount between ${0} and ${1}">
Run Code Online (Sandbox Code Playgroud)

此时,如果在输入中输入500,则将使用相同的先前消息验证失败,该消息表明它必须在$ 1和$ 350之间.我也试过从表单中删除验证器和unobtrusiveValidation并再次解析它没有运气.

$('form').removeData('validator');
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");
Run Code Online (Sandbox Code Playgroud)

是否有一种干净的方法可以动态地根据输入属性更改验证行为?

jquery-validate unobtrusive-validation asp.net-mvc-4

5
推荐指数
2
解决办法
5591
查看次数