0

これは私が書いたコードです:

$('#third_step input[type=text]').each(function(n,element){  
            if ($(element).val()=='') {  
              //alert('Field '+element.id+' must have a value');  
              $("label[for='" +element.id+ "']").append('<p class="input_field_error">Bitte füllen Sie dieses Feld!</p>');
        error++;  
            }else{
        $('.input_field_error').remove();
        }
 }); 

次に、テストするときに送信をクリックすると、入力されていないフィールドにエラーメッセージが表示されますが、それらのいくつかに入力すると、エラーメッセージが削除され、前のフィールドからメッセージが削除されますそれら、およびそれらの後のフィールドにはまだエラーメッセージがあります! フィールドが入力されているラベルから input_field_error を選択する必要があるかもしれません! または、これはフィールドが入力されているかどうかをテストする良い方法ではありませんか?

4

2 に答える 2

3
$('.input_field_error').remove();

これにより、クラスが必要なものではないすべての要素が削除されinput_field_errorます。現在検証している要素のみを削除する必要があります。したがって、次のように変更します。

$('.input_field_error', 'label[for="' + element.id + '"]').remove();

これにより、現在のIDの内のinput_field_errorクラスのみが選択されます。<label>

于 2013-01-10T19:57:13.367 に答える
0

すべてのクラス要素を削除しないように、else ステートメントを調整する必要があります。$('.input_field_error') はすべての項目を参照します。

于 2013-01-10T19:59:11.247 に答える