【发布时间】:2012-05-05 05:34:05
【问题描述】:
当光标聚焦在文本框中并按下回车键时,我有一个函数 X 在做某事,但是有可能(使用其他 JS 函数)如果我专注于这个文本框,我会收到警报。
问题发生在这里,有时我通过按enter“忽略”错误,当警报出现时如何不调用此函数X,但我希望它在警报出现时再次工作又关门了。
在 HTML 页面上:
<input type='text' name='col0' id='col0' onkeyup='arrowHandler(0);'
onblur='count(0)' />
<input type='text' name='col1' id='col1' onkeyup='arrowHandler(1);'
onblur='count(1)' />
<input type='text' name='col2' id='col2' onkeyup='arrowHandler(2);'
onblur='count(2)' />
<input type='text' name='col3' id='col3' onkeyup='arrowHandler(3);'
onblur='count(3)' />
在 JS 页面上:
function arrowHandler(i){
var key = window.event.keyCode;
if(key == 13){
// moving to the next (or first, if last) text field
var newcol = parseInt(i) + 1;
if(newcol == col) newcol = 0;
elmt = document.getElementById("col" + newcol);
elmt.focus();
}
}
function count(i){
if(parseInt(document.getElementById("col" + i).value) > 20){
alert("error!");
}
}
这里,当焦点在col0时,我写25,然后焦点移动到col1,我得到一个警报,然后我按回车,结果焦点移动到col2(我不想要最后一个动作,因为在显示警报时按 Enter)。
【问题讨论】:
-
你能说得清楚点吗?或者你能提供一个 jsfiddle 更好吗?
-
@Jivings: 完成,抱歉我之前太懒了:)
-
请任何投反对票的人,删除投反对票(我不介意不投反对票)
-
是我,既然你编辑了,我可以删掉它:)
-
请粘贴实际有效的代码;这两个函数都有错误,所以我很惊讶它完全可以工作。另外它只适用于 IE,但我认为这是有意的?
标签: javascript dom-events alert keypress