2012-08-09 107 views
0

在asp.net mvc3视图中,我有一个输入的表单。输入具有数字范围的正则表达式。正则表达式是正确的,但验证总是回到无效。我不知道我在这里失去了什么。这是呈现的元素。它在运行时加载页面后附加到DOM。正则表达式的数字范围不工作jQuery验证

<input 
id="ReserveQuantity" 
class="text-box single-line" 
type="text" 
name="ReserveQuantity" 
data-val="true" 
data-val-required="required." 
data-val-number="numeric" 
data-val-regex-pattern="/^(?:[0-9]|[1-9][0-9]|10[0-4])$/" 
data-val-regex="The field must be in range 0 to 104." 
> 

我错过了什么让这个正确验证?当我动态地渲染这个动画或者是其他地方的问题时,我是否错过了对jQuery验证器的调用?

回答

1

不知道为什么正则表达式没有正确验证,我仍然可以解释!正则表达式正确,我甚至尝试了几个不同的场景,所有这些都没有正确验证。我不知所措,直到我发现了一个巧妙写博客文章:http://xhalent.wordpress.com/2011/01/21/arbitrary-client-side-validation-in-asp-net-mvc-3/

结果,我做了以下修改:

data-val-regex-pattern="/^(?:[0-9]|[1-9][0-9]|10[0-4])$/" 
data-val-regex="The field must be in range 0 to 104." 

成了

data-val-range="The field must be in range 0 to 104." 
data-val-range-min="0" 
data-val-range-max="104" 

就像一个魅力。

+0

我知道这有点旧,但我注意到用'/'开始和结束编写模式会导致一些意外的行为。你尝试过没有斜杠吗? – Dorival 2014-07-15 18:29:13

+0

@Dorival - 我不确定我是否尝试过没有斜杠,但我是这么认为的?这是一段时间以前。我从来没有能够使正则表达式在我的所有测试场景中正常工作。我转移到数据值范围并为更复杂的情况进行自定义验证。如果你能够让正则表达式工作,请随意发表一个答案与你的发现,我会检查它是否比这个解决方法更相关。 – 2014-07-15 18:31:57