我試圖檢查該字段以確定它是否是數字(不包括非數字字符)。如果該字段的值是一個數字,則將其轉換爲兩位十進制格式。目前代碼在FireFox和Chrome中運行,但是我在使用Internet Explorer時遇到了問題(多個版本,特別是在IE8和IE9上測試過)。我一直在搞這個問題幾個小時,一直沒有找到解決問題的辦法。在Internet Explorer中,只有第一個字段可以正常工作。其他字段無法正常工作,Internet Explorer不會觸發錯誤。JS函數不適用於多輸入文本字段在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 = '';
}
}
}
我要上瀏覽這裏一些更多的線程來看看如果我找不到解決方案。
感謝您提前提供任何幫助。
複製粘貼錯誤? 'if(myvalue!=「」&&!pattern.text(myvalue))' – jbabey
@jbabey - 好的眼睛,應該是'test'(或match)! – adeneo
而不是將'this.id'傳遞給函數,只需傳遞'this'即可。然後,你可以用'input'獲取元素,用'input.value'指定它的值,用input.whatever'指定其他值。你可以消除整個'document.getElementById'部分。這不會解決任何問題,它僅僅是一個建議 – Ian