表单验证使用jQuery验证器具有相关的和排他的表单元素
Form Validation with jQuery validator having related and exclusive form elements
我有下面的结构在我的项目的形式,
<form action="somepage">
<p>Account Number</p>
<input type="text" size="3" name="accountNumberOne" class="my-form-group">
<input type="text" size="3" name="accountNumberTwo" class="my-form-group">
<input type="text" size="4" name="accountNumberThree" class="my-form-group">
<span>OR</span>
<p>Email ID</p>
<input type="email" name="emailId" id="emailId">
</form>
如果用户填写了 Account Number或Email ID的所有3个方框,则该表单将有效。如果她提交空白,它将显示两个字段的单个错误消息。我知道这可以使用require_from_group和组 jQuery验证器的属性来完成,但我不能一起实现它们!
任何帮助将不胜感激!
您可以使用下面的简单示例。如果其中一个字段为空值,它将显示一条警告消息。所有输入必须与一些数据完全匹配,以便使表单有效,并且在单击Submit按钮时触发验证。
如果你想使用一个现成的解决方案,你可以考虑流动的插件;
https://plugins.jquery.com/validation/https://jqueryvalidation.org/(function(window) {
var btn = document.querySelector('input[type="submit"]'),
message = document.getElementById('message'),
inputs = document.querySelectorAll('input:not([type="submit"])'),
checkForm = function() {
var isValid = Array.from(inputs).every(function(input) {
return input.value !== '';
})
if (isValid) {
message.innerHTML = 'form valid';
} else {
message.innerHTML = 'warning message';
}
};
btn.addEventListener('click', function(event) {
checkForm();
});
})(window);
<form action="somepage">
<p>Account Number</p>
<input type="text" size="3">
<input type="text" size="3">
<input type="text" size="4">
<span>OR</span>
<p>Email ID</p>
<input type="email" name="" id="">
<input type="submit" value="Submit">
</form>
<div id="message"></div>
您可以将required
选项true
用于所有具有callback
功能的元素,如docs所示。如果emailId
字段为空,您可以将required:true
设置为帐号,如果所有account number
字段为空,您可以将emailId
设置为必需。你可以这样做:
$("#myform").validate({
rules: {
accountNumberOne: {
required: function(element) {
return $('#emailId').val() == ""; //true only if emailId is empty
}
},
accountNumberTwo: {
required: function(element) {
return $('#emailId').val() == ""; //true only if emailId is empty
}
},
accountNumberThree: {
required: function(element) {
return $('#emailId').val() == ""; //true only if emailId is empty
}
},
emailId: {
required: function(element) {
return $('#accountNumberOne').val() == "" && $('#accountNumberTwo').val() == "" &&$('#accountNumberThree').val() == "" ;
//true only if all the other 3 fields are empty
}
},
},
invalidHandler: function(event, validator) {
// 'this' refers to the form
var errors = validator.numberOfInvalids();
if (errors) {
var message = errors == 1 ? 'You missed 1 field. It has been highlighted' : 'You missed ' + errors + ' fields. They have been highlighted';
$("div.error span").html(message);
$("div.error").show();
} else {
$("div.error").hide();
}
}
});
这是DEMO
使用errorPlacement
选项把它放在一个地方
这是更新演示
相关文章:
- 解析javascript表单验证器
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 自定义表单验证和提交
- Javascript表单验证的缺点
- Jquery的表单验证不起作用
- 语义ui表单验证:图像url
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- JavaScript表单验证-“;“错误”;不按需要工作
- Mailchimp内联表单验证不适用于JS加载的HTML
- jQuery/JS获胜't在表单验证后重定向
- jquery表单验证复选框错误显示
- javascript表单验证-数值和密码
- 我想知道如何在javascript中进行表单验证
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- 使用记录保存的消息进行表单验证
- 表单验证工作不正常,在不检查条目的情况下继续
- 如何对未知表单元素进行表单验证
- 使用ajax、php和mysql进行表单验证
- JS表单验证未发生
- 表单验证jsphp路径