首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE11与输入type=“数字”

IE11与输入type=“数字”
EN

Stack Overflow用户
提问于 2017-06-20 01:12:43
回答 1查看 3.2K关注 0票数 1

我有一个输入type="number“的表单,这给我带来了IE11中的问题:有些值被接受,而另一些则没有,显然是随机的。

下面是代码:

代码语言:javascript
复制
<input type="number" style="text-align:right" min="1.00" placeholder="1,00" name="value-name" id="value" step="0.01" title="title" required/>

出于某种原因,IE11接受9.2,9.4,9.5,9.6,9.7,9.9,但拒绝9.3和9.8。这只是一个例子,它发生在所有的数字,我不明白背后的原因。此外,一些数字在几分钟前就被接受了,但现在已经不是了。

此外,前面的所有值都不应该有效,因为我在欧洲,,是十进制部分的分隔符,而不是.。相反,当我使用,时,IE不会将其转换为.,并且当通过POST传递给PHP时,PHP的is_numeric()返回false!

我怎么才能把这一切都做好?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-20 11:30:25

我通过接受.,作为小数除数来修正这个问题。

我将属性formnovalidate lang="en"添加到表单输入中,并通过Javascript执行表单验证,代码如下:

代码语言:javascript
复制
function validateForm(minValue) {
var number = document.getElementById("value").value.replace(",",".");
if(number != "") {
    var isNaNres = isNaN(parseFloat(number));
    var isFiniteRes = isFinite(number);
    if (!isNaNres && isFiniteRes && number >= minValue && number.match("^[0-9]+(\.[0-9]{1,2})?$"))
        return true;

}
alert("<Error message>");
return false;
}

需要正则表达式匹配以保证该数字在小数点后的最高位数为2位。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44642249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档