0

#error段落があります。送信時にフォーム内にエラーがあるたび。入力プレースホルダーテキストが#error段落に追加されます。

私の問題:

これは、ユーザーが[送信]をクリックするたびに発生します。したがって、#errorメッセージは次のように返されます。

氏名、氏名、会社、役職、名、名、会社、役職、名、名、会社、役職、名、名、会社、役職、名、姓、会社を入力してください、役職、名、姓、会社、役職、

私は他の解決策を探してこれを試しました:

if (input.attr('placeholder').indexOf($('#error')) >= 0){
} else{
     $('#error').append(input.attr('placeholder').toLowerCase() + ', ');
}

プレースホルダーテキストが#errorメッセージにすでに存在するかどうかを確認する方法はありますか?これがフィドルです。とても複雑でごめんなさい。しかし、それは私が取り組んできたものであり、便利でした。

よろしくお願いします!

4

4 に答える 4

2

http://jsfiddle.net/8YgNT/20/

var errorText = '';

//Validate required fields
for (i = 0; i < required.length; i++) {
    var input = $('#' + required[i]);

    if ((input.val() == "") || (input.val() == emptyerror)) {
        input.addClass("tobefixed");
        errornotice.fadeIn(750);

        if (input.attr('placeholder').indexOf($('#error')) >= 0) {
            // do nothing
        } else {
            errorText = errorText + $(input).attr('placeholder').toLowerCase() + ', ';
        }

        input.val(emptyerror);
        errornotice.fadeIn(750);
    } else {
        input.removeClass("tobefixed");
    }
}

$('#error').html('').append('Please fill in your ' + errorText);
于 2013-03-13T20:01:04.523 に答える
0

あなたはそれを間違った方法でやっているようです(そして要素から抜け出すのを忘れてtext#errorます):

if ( $('#error').text().indexOf( input.attr('placeholder') ) >= 0)
于 2013-03-13T20:04:30.060 に答える
0

#error疑問に思っている文字列が含まれているかどうかを確認したい場合は、次を使用できます

($('#error').text().indexOf(a_string)) != -1

#errorが含まれている場合、これは true を返しますa_string

この質問では、文字列から他の文字列を検索することについて、より長い議論があります。

于 2013-03-13T20:01:22.717 に答える
0

あなたのフィドルに1行追加するだけで、今は機能しています:

required = ["id_first_name", "id_last_name", "id_firmbox", "id_job_title"];

errornotice = $("#error");
emptyerror = "Please fill out this field.";

$("#startform").submit(function(){
//Validate required fields

$("#error").html("Please fill in your");

for (i=0;i<required.length;i++) {
    var input = $('#'+required[i]);
    if ((input.val() == "") || (input.val() == emptyerror)) {
        input.addClass("tobefixed");        
        errornotice.fadeIn(750);


        // =====Here===== //
        if (input.attr('placeholder').indexOf($('#error')) >= 0){
        } else{
            $('#error').append(input.attr('placeholder').toLowerCase() + ', ');
        }
        // ============== //



        input.val(emptyerror);
        errornotice.fadeIn(750);
    } else {
        input.removeClass("tobefixed");
    }
 }

 if ($(":input").hasClass("tobefixed")) {
    return false;
 } else {
    errornotice.hide();
    return true;
 }
});
$(":input").focus(function(){
 if ($(this).hasClass("tobefixed") ) {
     $(this).val("");
     $(this).removeClass("tobefixed");
 }
});

この行はすべてのトリックを行います:

$("#error").html("Please fill in your");

サルドス ;)

于 2013-03-13T20:00:25.327 に答える