我创建了一个表单。我添加了验证。如果填写了表单中的一个字段,则必须填写所有其他字段,或者如果没有填写任何字段,则不需要检查验证。 我使用方法焦点来添加验证。选择一个字段,所有字段都需要验证执行。
我使用jquery-validation
<script>
$(document).ready(function () {
$("#myFormId").validate(
{
}
);
$('.contact1').focus(function () {
$('.contact1').addClass("required");
});
$('.contact2').focus(function () {
$('.contact2').addClass("required");
});
});
</script>
当我点击所需字段时,如果表格中没有填写任何字段,则添加到field.how以删除所需
答案 0 :(得分:0)
$('#myFormId').on('change', function() { // change or input event
var $inputs = $(this).find(':input:not(:submit)');
var anyInputChanged = !!$inputs.filter(function() {
return this.value !== this.defaultValue;
}).length;
$inputs.toggleClass('required', anyInputChanged);
});
&#13;
.required {
outline: 1px solid red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="myFormId">
<input>
<input>
<input type="submit">
</form>
&#13;
如果表单中的任何输入没有更多的默认值,您可以切换所需的类:
$('#myFormId').on('change', function() { // change or input event
var $inputs = $(this).find(':input:not(:submit)');
var anyInputChanged = !!$inputs.filter(function() {
return this.value !== this.defaultValue;
}).length;
$inputs.toggleClass('required', anyInputChanged);
});
答案 1 :(得分:0)
您的代码与您想要做的事情完全匹配,看起来更像是这样:
<script>
$(document).ready(function () {
$("#myFormId").validate(
{
...
}
);
$('#myFormId input').on('focus keyup', function() {
if($(this).val().length > 0){
$('#myFormId input').attr("required",true);
}
else{
$('#myFormId input').attr("required",false);
}
});
});
</script>
此外,您可能需要在更改属性时重新调用表单上的验证功能(但不要引用我的内容)。
这应该更接近你想要的,但要玩得开心!