这是我写的代码:
$('#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!或者,如果字段填满,这不是测试字段的好方法吗?
答案 0 :(得分:3)
$('.input_field_error').remove();
这将删除所有input_field_error
类的元素,这不是您想要的。您只想删除当前正在验证的元素。所以改成它:
$('.input_field_error', 'label[for="' + element.id + '"]').remove();
这只会选择input_field_error
在<label>
内的当前ID。
答案 1 :(得分:0)
您需要调整else语句,以便它不会删除所有类元素。 $('。input_field_error')引用所有项目。