必需=“必需”输入字段有条件的另一个输入字段
问题描述:
我有一个从2输入字段:手机和电话。我希望这些字段中至少有一个是必需的,这样表单才能被引用。您可以输入手机号码,不再需要电话输入或以其他方式输入。必需=“必需”输入字段有条件的另一个输入字段
<input class="form-control telephone" type="text" placeholder="Telephone" required="required" maxlength="100" pattern="^\+?[0-9 /-]*$"/>
<input class="form-control cellphone" type="text" placeholder="Cellphone" required="required" maxlength="100" pattern="^\+?[0-9 /-]*$"/>
我发现Jquery验证器有条件声明,但我不知道如何使用它们或他们没有在我的代码中工作。继承人我有什么
$("#myForm").validate({
firstInput: {
required: function(element){
return $(".cellphone").val().length > 0;
}
},
secondInput: {
required: function(element){
return $(".telephone").val().length > 0;
}
}
});
答
1)您需要将验证规则放在rules对象中。
2)你的if语句是错误的。如果另一个输入为空(otherInput.val().length == 0
),则需要输入(required: true
)。
3)您需要为输入指定名称属性。
$("#myForm").validate({
rules: {
firstInput: {
required: function(element){
return $(".cellphone").val().length == 0;
}
},
secondInput: {
required: function(element){
return $(".telephone").val().length == 0;
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>
<form id='myForm'>
<input class="form-control telephone" type="text" placeholder="Telephone" maxlength="100" name="firstInput" pattern="^\+?[0-9 /-]*$"/>
<input class="form-control cellphone" type="text" placeholder="Cellphone" name="secondInput" maxlength="100" pattern="^\+?[0-9 /-]*$"/>
<input type="submit">
</form>
+0
完美!谢谢! – pepote
你可以做到这一点,即使没有使用jQuery validator.You只需要访问这两个字段的值,并检查是否都没有empty.Then如果两个都是空的,那么你只阻止提交并显示错误 – Debabrata