我有一个表单验证jquery如果输入元素的值为空,我在输入元素之前添加一个div。如果用户之后为input元素赋值,我想删除插入的div。我希望在不向div添加id的情况下实现此目的。
if($("#psalutation").val()==''){
$("#psalutation").before('<div><center><font color="#C40404"><b>Please enter your last name below.</b></font></center></div>');
$("#psalutation").focus();
return false;
}
这是html;
<div class="col-sm-7" style="padding-left:0px;">
<label for="name" class="col-sm-12 no-padding control-label">Your first name*</label>
<div class="col-sm-12 no-padding">
<input type="text" name="pfirstname" class="form-control" id="pfirstname" placeholder="">
</div>
</div>
提前致谢
答案 0 :(得分:1)
使用prev()
或next()
定位与当前选择器相关的上一个元素或下一个元素:
$("#psalutation").prev("div:first").remove();
或
$("#psalutation").next("div:first").remove();
参考:https://api.jquery.com/prev/和https://api.jquery.com/next/
演示:http://jsfiddle.net/lotusgodkk/GCu2D/1073/
点击按钮删除div。
答案 1 :(得分:1)
您可以在第一次运行验证函数之前删除所有验证分区,然后再插入任何错误,此外,您不需要所有的混乱......您可以使用jQuery validation plugin,它是一个很好的表单插件验证和易于定制。
$('input, select').prev('div').remove();
if($("#psalutation").val()==''){
$("#psalutation").before('<div><center><font color="#C40404"><b>Please enter your last name below.</b></font></center></div>');
$("#psalutation").focus();
return false;
}
if($("#pfirstname").val()==''){
$("#pfirstname").before('<div><center><font color="#C40404"><b>Please enter your last name below.</b></font></center></div>');
$("#pfirstname").focus();
return false;
}