2015-05-18 44 views
0

我有一個錢文本框,我已將類型設置爲數字,以兩位數的精度輸入數值,並限制輸入字母或符號的方式始終爲0.00格式。表單中的所有文本框似乎都可以驗證,直到一個文本框約減少7個值。 HTML5驗證發生並以紅色突出顯示,並且在允許表單提交之前指出「您必須輸入有效值」。我看不出這個值是無效的。我嘗試過多種模式。我需要type = number來允許在移動設備中設置正確的鍵盤。將類型設置爲文本並且數字鍵盤不顯示。HTML5輸入類型號碼貨幣驗證失敗

這是引發錯誤的輸入:

input name="ctl00$MainContent$lvAccounts$ctrl6$txtAccountBalance" tabindex="21" class="MoneySelection jqNumeric ThisRow" id="ctl00_MainContent_lvAccounts_ctrl6_txtAccountBalance" type="number" step="0.01" pattern="^\d+\.\d{2}$" value="40980.66" 

但是正上方,與其他框沿着它們似乎通過(假定從上到下驗證):

input name="ctl00$MainContent$lvAccounts$ctrl5$txtAccountBalance" tabindex="21" class="MoneySelection jqNumeric ThisRow" id="ctl00_MainContent_lvAccounts_ctrl5_txtAccountBalance" type="number" step="0.01" pattern="^\d+\.\d{2}$" value="16374.29" 

這裏還有一個奇怪之處......我將該值設置爲41980.66,並且驗證正確。我設置爲39980.66,它失敗,設置爲31980.66並驗證。

我讀過關於窗體上的novalidate選項,但這會影響/否定任何RequiredFieldValidators?如果正則表達式不正確,爲什麼它對某些值而不是其他值有效?

我試過不同的模式和內聯VS jQuery屬性沒有成功。我能夠在jsFiddle上使用IE11重新創建我的瀏覽器 http://jsfiddle.net/8821dhfj/

+0

我可以確認Chrome沒有這個問題。當使用最小和最大屬性時,它「似乎」解決問題,但僅改變引發驗證錯誤的美分值。更改41980.66到41980.67,並且它失敗http://jsfiddle.net/8821dhfj/2/ – AdamRoof

回答

0

不要在JavaScript中使用type =「number」。它看起來在IE中不受支持。

或使用Number polyfill

+0

感謝您的參考,但看起來有自己的問題與IE瀏覽器。沒有輸入類型=數字,似乎沒有其他方式顯示移動設備中的數字鍵盤。 – AdamRoof

+0

如何使用?這將顯示數字鍵盤。 –