Tabキーを押してテキストボックスからフォーカスを外したときにのみonBlurイベントを実行したいテキストボックスがあります。
javascriptを介してこれを行うにはどうすればよいですか?
どんな助けでも大歓迎です..
Tabキーを押してテキストボックスからフォーカスを外したときにのみonBlurイベントを実行したいテキストボックスがあります。
javascriptを介してこれを行うにはどうすればよいですか?
どんな助けでも大歓迎です..
ブラウザでは、コントロールにフォーカスがあるときにTabキーを押すと、コントロールがタブ順の次の要素に移動し、現在の要素がフォーカスを失い、ぼかしイベントがディスパッチされます。
したがって、Tabキーが押されているかどうかをテストし、それに基づいて関数を呼び出すことができます。
<script type="text/javascript">
function showKey(e) {
return e.which || e.keyCode;
}
</script>
<form>
<input type="text" onkeydown="this.form.msg.value = showKey(event);">
<input type="text" name="msg">
</form>
上記は、タブキーの値が9であることを示しているため、次のことができます。
if ((e.which || e.keyCode) == 9) {
// tab key was pressed, do stuff
}
ほとんどのブラウザはe.whichをサポートしていますが、他のブラウザはe.keyCodeをサポートしていることに注意してください。
あなたのコメントに基づいて、以下は、コントロールがフォーカスを失ったときに、非表示フィールドの値が設定されたことを示しています。
<input type="text" onkeydown="this.form.msg.value = showKey(event);
(event);" onblur="alert(this.form.msg.value);">
`enter code here`
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#theDiv input").bind("blur", function () {
setTimeout(function () {
var isOut = true;
$("#theDiv input").each(function () {
if (this == document.activeElement) isOut = false;
});
if (isOut) {
// YOUR CODE HERE
alert("I am called");
}
}, 10);
});
});
</script>
<!-- ... -->
<div id="theDiv">
<input type="text" value="Inside DIV 1" />
<input type="text" value="Inside DIV 2" />
<input type="text" value="Inside DIV 3" />
</div>
<input type="text" value="Outside DIV" />
<script type="text/javascript">
function callfunc() {
alert("Hello");
}
</script>
<form>
<input type="text" onblur="callfunc();">
</form>