0

ぼかしイベントでフィールドを検証しています。フィールドが無効な場合は、フォーカスを同じフィールドに残し、次のフィールドに移動しないようにします。ぼかし関数内で行う$(this).focus()と、Chrome でのみ機能し、Firefox では機能しません。settimeout 関数を試しましたが、フォーカスが次のフィールド (#myInput2) に移動し、フィールド (#myInput1) に戻るという問題があります。次のフィールドでもエラーが発生するため、再びぼやけて空になることは望ましくありません。Firefoxでこれを解決する方法はありますか??
私のコード:

$('#myInput1').blur(function () {
    if (!validField1($(this).val())) {
        alert("Invalid");
        $(this).focus(); // Does not work in FF 
    }
});


$('#myInput2').blur(function () {
    if (!validField2($(this).val())) {
        alert("Invalid");
        $(this).focus();
    }
});
4

1 に答える 1

0

一度この質問をしたことがありますが、これらは通常、ユーザーを 1 つの入力ボックスにロックダウンしないブラウザー機能です。ユーザーは、それが有効であるかどうかにかかわらず、必要に応じて立ち去ることができる必要があります。

そのため、blur イベントの後に同じ要素をフォーカスすることは許可されていません。

編集:

Chrome ブラウザではこのような動作が許可されているようですが、Firefox と Internet Explorer では許可されていません。

于 2013-07-26T08:26:13.480 に答える