leo*_*ora 3 jquery numeric jquery-validate asp.net-mvc-3
我正在使用asp.net-mvc3助手和jquery验证插件(当你使用模板(创建,编辑等)时,开箱即用的东西,我有一个名为MiniPrice的字段是数据类型 小数?
所以它在客户端验证我在文本框中输入了一个数字.
如果我输入1.25就行了.如果我输入0.75它工作正常,但如果我输入.75它会给出此验证错误:
为什么jquery不引人注意的验证认为.75不是有效数字?
我发现这个错误是多年前在jquery核心站点上提交的,它被关闭了,因为它不是一个jquery核心问题,而是一个插件问题.
这似乎是验证器的行为方式.我打开jQuery的一个问题,看看他们是否可以(或想要)解决它.
同时,您可以创建自己的验证器方法,使其行为与您期望的一样:
$.validator.addMethod('myValidateNumber', function (value) {
return /^(\d\.|\.)?\d+$/.test(value);
}, 'Please enter a valid number');
Run Code Online (Sandbox Code Playgroud)
这个正则表达式看起来像你想要的那样 - 也许有更好的方法来编写它.我不是正则表达的主人,但这应该足够了.
然后,只需用myValidateNumber
在class
任何您要验证的.您可以在此处阅读有关扩展jQuery验证的更多信息.
编辑:要将其连接到MVC3 - 请查看此StackOverflow帖子:对自定义属性执行客户端验证.
基本上我们正在做的是为此创建自己的验证,并且您可以将自己的属性应用于模型.
编辑2:如果您使用validator.addMethod('number'...
,它似乎将更改数字验证的默认行为.这意味着您根本不必更改MVC模型.基本上,将此添加到您的页面加载:
$.validator.addMethod('number', function (value) {
return /^(\d\.|\.)?\d+$/.test(value);
}, 'Please enter a valid number');
Run Code Online (Sandbox Code Playgroud)
应该解决问题.
归档时间: |
|
查看次数: |
1140 次 |
最近记录: |