繁体   English   中英

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");

提前致谢!

条件规则:

第一次尝试时,您会遇到各种各样的小问题。

  1. 您在first_name1上声明了一条规则,但此字段名为first_name 插件需要正确的name属性。

  2. 您在last_name1上声明了一条规则,但此字段名为first_last 插件需要正确的name属性。

  3. 您在bus_name1上声明了一条规则,但此字段名为bus_name 插件需要正确的name属性。

  4. 您在某些规则上检查长度,而在其他规则上检查:empty 都对它们使用.is(':blank')

演示: http : //jsfiddle.net/n8gvvb92/


自定义方法:

在您的自定义规则中,您的逻辑是倒退的。 当前,当名称字段为空时,您将返回true 在这种情况下,您将希望返回false ,以便触发验证错误消息。

您还要在这里也使用.is(':blank')

这样的事情更接近您想要的东西,但仍然需要一些工作。

$.validator.addMethod("busnameRequired", function (value, element) {
    return ($("#first_name").is(':blank') && $("#last_name").is(':blank')) ? false : true;
}, "Enter Business Name");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM