jQuery 验证需要两个字段或另一个字段
jQuery validate require two field or one other filed
我一直在寻找,但没有找到满足我特定需求的解决方案。我总共有 3 个字段(first_name、last_name 和 business_name)。我希望用户要么输入名字和姓氏,要么只输入公司名称。
我有几种方法,这是我最近的尝试。
<input type="text" id="first_name" name="first_name">
<input type="text" id="first_last" name="first_last">
<input type="text" id="bus_name" name="bus_name">
rules : {
first_name1 : {
required: function(element){
return $("#bus_name").val().length = 0;
}
},
last_name1 : {
required : function(element){
return $("#bus_name").val().length = 0;
}
},
bus_name1: {
required : function(element){
return ($("#first_name").is(':empty') && $("#last_name").is(':empty') ? true : false);
}
}
我也试过创建自定义方法。不用说它没有用。
$.validator.addMethod("busnameRequired", function(value, element) {
var firstname1 = $("#first_name").val().length,
lastname1 = $("#last_name").val().length;
if(firstname + lastname == 0) {
return true;
}else{
return false;
}
}, "Enter Business Name");
提前致谢!
条件规则:
你在第一次尝试时遇到了各种小问题...
您在 first_name1
上声明了规则,但此字段名为 first_name
。该插件需要正确的 name
属性。
您在 last_name1
上声明了规则,但此字段名为 first_last
。该插件需要正确的 name
属性。
您在 bus_name1
上声明了规则,但此字段名为 bus_name
。该插件需要正确的 name
属性。
您正在检查某些规则的长度,但在其他规则上检查 :empty
。对所有这些都使用 .is(':blank')
。
演示:http://jsfiddle.net/n8gvvb92/
自定义方法:
在您的自定义规则中,您的逻辑是倒退的。当名称字段为空时,您目前正在 returning true
。在这种情况下,您需要 return false
以便触发验证错误消息。
你也想在这里使用 .is(':blank')
。
这样的东西更接近您想要的,但仍需要一些工作。
$.validator.addMethod("busnameRequired", function (value, element) {
return ($("#first_name").is(':blank') && $("#last_name").is(':blank')) ? false : true;
}, "Enter Business Name");
我一直在寻找,但没有找到满足我特定需求的解决方案。我总共有 3 个字段(first_name、last_name 和 business_name)。我希望用户要么输入名字和姓氏,要么只输入公司名称。
我有几种方法,这是我最近的尝试。
<input type="text" id="first_name" name="first_name">
<input type="text" id="first_last" name="first_last">
<input type="text" id="bus_name" name="bus_name">
rules : {
first_name1 : {
required: function(element){
return $("#bus_name").val().length = 0;
}
},
last_name1 : {
required : function(element){
return $("#bus_name").val().length = 0;
}
},
bus_name1: {
required : function(element){
return ($("#first_name").is(':empty') && $("#last_name").is(':empty') ? true : false);
}
}
我也试过创建自定义方法。不用说它没有用。
$.validator.addMethod("busnameRequired", function(value, element) {
var firstname1 = $("#first_name").val().length,
lastname1 = $("#last_name").val().length;
if(firstname + lastname == 0) {
return true;
}else{
return false;
}
}, "Enter Business Name");
提前致谢!
条件规则:
你在第一次尝试时遇到了各种小问题...
您在
first_name1
上声明了规则,但此字段名为first_name
。该插件需要正确的name
属性。您在
last_name1
上声明了规则,但此字段名为first_last
。该插件需要正确的name
属性。您在
bus_name1
上声明了规则,但此字段名为bus_name
。该插件需要正确的name
属性。您正在检查某些规则的长度,但在其他规则上检查
:empty
。对所有这些都使用.is(':blank')
。
演示:http://jsfiddle.net/n8gvvb92/
自定义方法:
在您的自定义规则中,您的逻辑是倒退的。当名称字段为空时,您目前正在 returning true
。在这种情况下,您需要 return false
以便触发验证错误消息。
你也想在这里使用 .is(':blank')
。
这样的东西更接近您想要的,但仍需要一些工作。
$.validator.addMethod("busnameRequired", function (value, element) {
return ($("#first_name").is(':blank') && $("#last_name").is(':blank')) ? false : true;
}, "Enter Business Name");