我有一个在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)
是否有一种干净的方法可以动态地根据输入属性更改验证行为?