2015-05-18 40 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

如何使用?这将显示数字键盘。 –