0

クリックすると(フォーカス時に)赤く強調表示されるテキストボックスがあります。その中に何か入力すると、ハイライトされてグレーに戻ります。しかし、その中に何かを入力して、その中のすべてのデータを再度削除しても、赤くハイライトされません。それを手伝ってください。赤とグレーを強調表示するために使用したコードは次のとおりです。

$("#fname").bind('focus', function (e) {
    if ((document.getElementById("fname").value).length == 0) {
        document.getElementById("fname_error").style.display = "inline";
        $("#fname").attr('style', 'border: 1px solid #8C0005 !important;');

        return false;
    }
    else {
        document.getElementById("fname_error").style.display = "none";
    }
    return true;
});

$("#fname").keypress(function (e) {
    var iKeyCode = (e.which) ? e.which : e.keyCode


    if ((iKeyCode > 64 && iKeyCode < 91) || (iKeyCode > 96 && iKeyCode <      123) || iKeyCode==8 || iKeyCode == 9 ) {

                document.getElementById("fname_error").style.display = "none";
                $("#fname").attr('style', 'border: 1px solid #cccccc !important;');
                return true;

    }
    else {
            document.getElementById("fname_error").style.display = "inline";
            return false;
        }

});
4

1 に答える 1

0

これは、イベント ハンドラー内に赤い境界線を設定しているためですfocus。要素が既にフォーカスされている場合、このイベントは発生しません。

このコードをkeyupハンドラに移動してみてください。

于 2016-07-05T07:01:49.717 に答える