HTML5输入类型编号货币验证失败

时间:2015-05-18 20:41:00

标签: html5 validation

我有一个钱文本框,我将类型设置为数字,以输入两位精度的值,并限制输入字母或符号,使其始终为0.00格式。表单中的所有文本框似乎都可以正常验证,直到一个文本框关闭大约7个值。发生HTML5验证并以红色突出显示,并在允许表单提交之前声明“您必须输入有效值”。我看不出这个值是如何无效的。我尝试了多种模式。我“需要”拥有type = number以允许在移动设备中设置正确的键盘。将类型设置为文本并且不显示数字键盘。

这是抛出错误的输入:

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属性但没有成功。我能够使用IE11作为我的浏览器在jsFiddle上重新创建 http://jsfiddle.net/8821dhfj/

1 个答案:

答案 0 :(得分:0)

不要在JavaScript中使用type =“number”。看起来它在IE中不受支持。

或使用Number polyfill