1

Tabキーを押してテキストボックスからフォーカスを外したときにのみonBlurイベントを実行したいテキストボックスがあります。

javascriptを介してこれを行うにはどうすればよいですか?

どんな助けでも大歓迎です..

4

3 に答える 3

4

ブラウザでは、コントロールにフォーカスがあるときに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);">
于 2012-08-09T11:09:22.060 に答える
1
`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" />
于 2014-01-02T13:20:48.517 に答える
-2
<script type="text/javascript">

function callfunc() {
 alert("Hello");
}

</script>


<form>
  <input type="text" onblur="callfunc();">
</form>
于 2012-08-09T11:33:18.823 に答える