【发布时间】:2014-11-16 15:05:00
【问题描述】:
在一个表单上有 4 个文本输入。
如果其中至少有 1 个具有值,则所有剩余字段都必须具有值。
是否可以为此验证配置 Parsley.js?
【问题讨论】:
标签: javascript html validation parsley.js
在一个表单上有 4 个文本输入。
如果其中至少有 1 个具有值,则所有剩余字段都必须具有值。
是否可以为此验证配置 Parsley.js?
【问题讨论】:
标签: javascript html validation parsley.js
是的,这是可能的。但是,没有默认配置。
这意味着您必须在 javascript 中创建该逻辑并在每种情况下销毁/绑定欧芹。
看看这段代码 (jsfiddle available):
<form class="form-inline" method="post" id="myForm">
<input type="text" id="field1" name="field1" />
<input type="text" id="field2" name="field2" />
<input type="text" id="field3" name="field3" />
<input type="text" id="field4" name="field4" />
<button type="submit" class="btn btn-default">test</button>
</form>
<script>
$('#myForm').parsley();
$("#field1, #field2, #field3, #field4").on('change', function() {
if ($("#field1").val().length > 0 ||
$("#field2").val().length > 0 ||
$("#field3").val().length > 0 ||
$("#field4").val().length > 0 )
{
// If any field is filled, set attr required
$("#field1, #field2, #field3, #field4").attr("required", "required");
} else {
// if all fields are empty, remove required attr
$("#field1, #field2, #field3, #field4").removeAttr("required");
}
// destroy ParsleyForm instance
$('#myForm').parsley().destroy();
// bind parsley
$('#myForm').parsley();
});
$("#myForm" ).on('submit', function( event ) {
$(this).parsley().validate();
if ($(this).parsley().isValid()) {
alert('form is valid');
}
event.preventDefault();
});
</script>
【讨论】: