【发布时间】:2010-04-13 18:06:31
【问题描述】:
让这个可爱的小脚本在输入后自动更改字段。在 IE、Chrome 和 Safari 中运行良好,但在 FF 或 Opera 中不适用。 JS代码:
function fieldChange(id, e){
var keyID = (window.event) ? event.keyCode : e.keyCode;
if (document.getElementById(id).value.length >= 2){
if (keyID >= 48 && keyID <= 57 || keyID >= 96 && keyID <= 105){
switch(id){
case "textf1":
document.getElementById("textf2").focus();
break;
case "textf2":
document.getElementById("textf3").focus();
break;
case "textf3":
if (document.getElementById(id).value.length >= 4){
document.getElementById("nubPcode").focus();
}
break;
}
}
}
HTML:
<div class="privateOrderSchema">
<input type="text" id="textf1" name="textf1" maxlength="2" size="4" onKeyUp="fieldChange('textf1')"/>-
<input type="text" id="textf2" name="textf2" maxlength="2" size="4" onKeyUp="fieldChange('textf2')" />-
<input type="text" id="textf3" name="textf3" maxlength="4" size="5" onKeyUp="fieldChange('textf3')" />
</div>
<div class="privateOrderSchema">
<input type="text" id="nubPcode" name="nubPcode" size="4" maxlength="4" />
<br />
</div>
有人知道如何在这种情况下发送“e”变量吗?
Tnx all :D ur gr8!
【问题讨论】:
-
你试过不显眼的方法吗? document.getElementById('textf1').onkeyup = document.getElementById('textf2').onkeyup = document.getElementById('textf3').onkeyup = function() { fieldChange(this.id); };
-
我们能不能,请,就一次,对 JavaScript 的工作机制有疑问,而无需宗教性的“只使用 jQuery”回复吗? jQuery 并不是唯一的 JS 库或脚本编写方法。它远非完美无缺,通常会补充有问题的设计决策和使用它可能存在的缺点。
标签: javascript html firefox events