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类 WITHIN 。<label>

于 2013-01-10T19:57:13.367 回答
0

您需要调整 else 语句,使其不会删除所有类元素。$('.input_field_error') 引用所有项目。

于 2013-01-10T19:59:11.247 回答