2012-08-09 105 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