前幾天工作中寫了一段javascript 檢查輸入文字是否存在對照表中的 key 值,如果不存在就出現 alert() 訊息,最後將 focus 移回到原欄位等待再輸入。沒想到在 IE 6及FireFox 與 Chrome 中有不同的表現。在 IE6 中會造成不斷出現 alert 訊息,在 FireFox 及 Chrome 都正常。
程式碼如下:
function chkBCode(itm)
{
if (...) {
// 省略
}
alert("代碼不存在");
itm.value = "";
itm.focus();
}
以上這段,有問題,為了解決 IE6 的問題,只好將它改成如下 :
function chkBCode(itm)
{
if (...) {
// 省略
}
itm.value = "";
itm.focus();
alert("代碼不存在");
}
簡單地說,IE6 認為焦點跑了,會不斷地檢查,造成 loop, 只要將 itm.focus() 先執行,將焦點移回輸入文字的地方就沒問題了。