我正在尝试检查该字段以确定它是否是一个数字(除了 . 之外没有非数字字符)。如果字段的值为数字,则将其转换为两位十进制格式。目前该代码在 FireFox 和 Chrome 中运行,但我在使用 Internet Explorer 时遇到问题(多个版本,专门在 IE8 和 IE9 上测试)。我已经搞砸了几个小时,但无法找到问题的解决方案。在 Internet Explorer 中,只有第一个字段可以正常工作。其他字段无法正常工作并且 Internet Explorer 不会触发错误。
这是html文件中的相关代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script type="text/javascript" src="amount.js"></script>
</head>
<body>
<input type="text" id="amount1" onChange="changeAmount(this.id);"/>
<input type="text" id="amount2" onChange="changeAmount(this.id);"/>
<input type="text" id="amount3" onChange="changeAmount(this.id);"/>
<input type="text" id="amount4" onChange="changeAmount(this.id);"/>
<input type="text" id="amount5" onChange="changeAmount(this.id);"/>
</body>
</html>
这是来自 amount.js 的相关代码:
function changeAmount(input)
{
var pattern = /([^0-9\.])+/;
var ctl = document.getElementById(input);
var myvalue = ctl.value;
if(myvalue != "" && !pattern.test(myvalue))
{
myvalue = parseFloat(myvalue);
myvalue = myvalue.toFixed(2);
if(!pattern.test(myvalue))
{
ctl.value = myvalue;
}else
{
ctl.value = '';
}
}
}
我将在这里浏览更多线程,看看是否找不到解决方案。
感谢您提前提供任何帮助。