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