JQuery验证多个字段,但有一个错误

55 jquery jquery-validate

我如何使用JQuery Validate插件为3个字段提供一条错误消息.例如3个dob字段.默认情况下,如果所有3个字段都留空,我将收到3条错误消息.我只想将一个错误链接到3个字段.如果有任何空白,则会出现错误.

Jul*_*les 54

与Chris的相似

$("form").validate({
    rules: {
        DayOfBirth: { required: true },
        MonthOfBirth: { required: true },
        YearOfBirth: { required: true }
    },
    groups: {
        DateofBirth: "DayOfBirth MonthOfBirth YearOfBirth"
    },
   errorPlacement: function(error, element) {
       if (element.attr("name") == "DayOfBirth" || element.attr("name") == "MonthOfBirth" || element.attr("name") == "YearOfBirth") 
        error.insertAfter("#YearOfBirth");
       else 
        error.insertAfter(element);
   }
});
Run Code Online (Sandbox Code Playgroud)

  • 用mvc 3,如何编写这个jquery.validaet适配器? (4认同)

Chr*_*ris 13

您可以使用groups选项将输入组合在一起.如果每个输入都有错误消息,则只显示一个.

您可能希望覆盖与每个字段关联的消息,因此它们会更有意义.例如,默认情况下,您可能会收到一条错误消息,例如"此字段是必需的".好吧,当有三个输入时,这对用户来说并不好.您可能希望覆盖该消息,说"需要本地号码".对于此示例,我只是通过"请输入有效的电话号码"覆盖所有错误消息.

<input type="text" name="countryCode" />
<input type="text" name="areaCode" />
<input type="text" name="localNumber" />

groups: {
  phoneNumber: "countryCode areaCode localNumber"
},
rules: {
  'countryCode': {
    required: true,
    minlength:3,
    maxlength:3,
    number:true
  },
  'contactInformation[areaCode]': {
    required: true,
    minlength:3,
    maxlength:3,
    number:true
  },
  'contactInformation[localNumber]': {
    required: true,
    minlength:4,
    maxlength:4,
    number:true
  },
},
messages: {
  "countryCode": {
    required: "Please enter a valid Phone Number",
    minlength: "Please enter a valid Phone Number",
    maxlength: "Please enter a valid Phone Number",
    number: "Please enter a valid Phone Number"
  },
  "areaCode": {
    required: "Please enter a valid Phone Number",
    minlength: "Please enter a valid Phone Number",
    maxlength: "Please enter a valid Phone Number",
    number: "Please enter a valid Phone Number"
  },
  "localNumber": {
    required: "Please enter a valid Phone Number",
    minlength: "Please enter a valid Phone Number",
    maxlength: "Please enter a valid Phone Number",
    number: "Please enter a valid Phone Number"
  }
},
Run Code Online (Sandbox Code Playgroud)


ina*_*cod 5

这是针对 HTML 部分的:

<div>
    <p class="myLabel left">Date of birth:</p>
    <p class="mandatory left">*</p>
    <div class="left">
        <p><input type="text" name="dobDay" class="required" /></p>
        <p><i>dd</i></p>
    </div>
    <div class="left">
        <p><input type="text" name="dobMonth" class="required" /></p>
        <p><i>mm</i></p>
    </div>
    <div class="left">
        <p><input type="text" name="dobYear" class="required" /></p>
        <p><i>yyyy</i></p>
    </div>
    <div class="clear"></div>
    <div class="myError">
        <label for="dateOfBirth" class="error">Please enter a valid date.</label>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我使用的脚本:

$(document).ready(function() {

$("#myForm").validate({
    groups: {
      dateOfBirth: "dobDay dobMonth dobYear"
    },
    rules: {
      'dobDay': {
        required: true,
        minlength:1,
        maxlength:2,
        range: [1, 31],
        number:true
      },
      'dobMonth': {
        required: true,
        minlength:1,
        maxlength:2,
        range: [1, 12],
        number:true
      },
      'dobYear': {
        required: true,
        minlength:4,
        maxlength:4,
        number:true
      },
    },
});
});
Run Code Online (Sandbox Code Playgroud)

所有 HTML 部分都可以根据您的需要进行自定义。我使用这些复杂的布局是因为我需要将此字段添加到现有表单中。但这是一个有效的例子!希望它可以帮助任何人!


Jar*_*yer 0

有几个选择:查看errorContainer. 您可以将所有错误转移到完全独立的<div>. 或者你可以查看该invalid块,然后只需要一个errorMessage.show()命令。