0

フォームのライブ検証スクリプトを作成しようとしています。いずれにせよ、ある程度は理解できたと思います...しかし、テキストがない場合とは対照的に、フィールドにテキストがある場合にエラーメッセージが表示されます。私は何かばかげた間違ったことをしていると確信しています.if値が正しいと確信しています.ifvalue == ''値が何もないvalue !== ''場合は. うーん、多分それは私が変更すべきオン/変更のものですか?お役に立てれば幸いです。ありがとうございました。

http://jsfiddle.net/Vjwxs/3/

$(document).ready(function () {    
    $('#name').on('change', function() {
        var name = $("#name").val();
        if (!this.value == '') {
            $("#errorname").fadeIn();
            $('#errorname').css("display", "inline-block");
            $('#errorname').css("color", "#838383");
            $('#errorname').css("background-color", "#fff568");
        }
        else if (!this.value !== '' ) {
            $("#errorname").fadeOut();
            $('#errorname').css("display", "none");
        }
    });
}); 
4

1 に答える 1

4

ifあなたの条件を声に出して読んでください。これは、問題がどこにあるかを理解するのに役立ちます。

if (!this.value == '') { /* Show the error */ }

「そうでない場合、この値は空の文字列と同じです」。または、よりわかりやすい形で、「この値が空の文字列と等しくない場合」。実際には、「この値空の文字列と等しい場合」というエラーを表示する必要があります。

if (!this.value !== '' ) { /* Hide the error */ }

「そうでない場合、この値は空の文字列と等しくありません」。繰り返しになりますが、「この値が空の文字列と等しくない場合」というより読みやすいです。実際には、「この値が空の文字列と等しくない場合」というエラーを非表示にする必要があります。

両方の条件から最初の否定を削除すると、コードが機能します。

于 2013-03-21T14:09:34.880 に答える