0

使用 jQuery 验证插件,我已经弄清楚了如何根据另一个字段的输入来使一个字段成为必需的,以及如何使一个字段不等于默认值——但是我正在努力将两者结合起来,例如只需要一个字段需要时不等于默认值。这是我的代码:

$(document).ready(function () {
$.validator.addMethod("notEqual", function(value, element, param) {
  return this.optional(element) || value !== param;
}, "Please specify a non-default value");

$("#request").validate({
  rules: {
        format: {
            required    : true,
        },
        citySuburb      :   {
            required    : function(element) {
                    return $("#format").val()=="print"
                    },
            notEqual    : "Please enter your city."
            },
      }
    });
});

正如您在上面的示例中看到的,citySuburb 字段始终检查它是否等于默认值,而不管该字段本身是否是必需的。我真的很想这样做,以便 citySuburb 仅在需要该字段时(即在格式字段中选择“打印”时)检查它是否是默认值。

任何帮助将不胜感激。

4

1 回答 1

0

更改您的 notEqual 方法,使其接受命名参数,例如

notEqual: { default: "Please enter your city.",
            otherField: "#format",
            otherFieldValue: "print"
          }

then have the notEqual method check $(param.otherField).val() == param.otherFieldValue.

于 2012-08-09T02:29:02.757 回答