カーソルがテキストボックスにフォーカスされているときに関数Xが何かを実行していて、Enterキーを押していますが、このテキストボックスにフォーカスすると、アラートが表示される可能性があります(他の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
、アラートが表示され、Enterキーを押すと、フォーカスがに移動しますcol2
(Enterキーを押すため、最後の移動は必要ありません)アラートが表示されたとき)。