1

ユーザー入力を正規表現で検証しようとしています。ユーザーがフィールドに入力しない場合、「フィールドに入力してください」というエラーが表示されます。問題は、ユーザーがフィールドに入力しないと、2 番目のエラーも表示されることです。どうすればこれを防ぐことができますか? これは私が試したものです:

if (!regex.test($('#fname').val())) {
            $("#err2fname").removeClass("hidden"); //displays error if it doesn't match the regex
    }
    else if ($("#fname").val() == "" ) {
        $("#err2fname").addClass("hidden"); //hides if field is empty
    }
    else ($("#err2fname").addClass("hidden")); //hides if it matches the regex

私の問題を示すフィドルを作成しました。

4

2 に答える 2

2
$("#fname").blur(function () {
    $("#errfname").toggleClass("hidden", this.value != "");
    $("#err2fname").toggleClass("hidden", !regex.test(this.value) && this.value.length);
})

http://jsfiddle.net/SrHGX/1/

于 2013-03-29T02:03:52.860 に答える
2
   if ($("#fname").val() == "") {
        $("#errfname").removeClass("hidden");
        $("#err2fname").addClass("hidden");
    } else {
        $("#errfname").addClass("hidden");
        if (!regex.test($('#fname').val())) {
            $("#err2fname").removeClass("hidden");
        } else {
            $("#err2fname").addClass("hidden");
        }
    }

私はあなたのフィドルを更新しました。このフィドルを見てみてください

于 2013-03-29T01:50:12.957 に答える