是否有可能依赖于jQuery远程验证?

时间:2012-02-14 05:26:23

标签: jquery jquery-validate

我正在使用jQuery远程验证来检查描述是否已被使用。

 Description: {
                    required: true,
                    maxlength: 20,
                    remote: function () {
                        var newDescription = $("#txtDescription").val();
                        var dataInput = { geoFenceDescription: newDescription };
                        var r = {
                            type: "POST",
                            url: "/ATOMWebService.svc/DoesGeoFenceDescriptionExist",
                            data: JSON.stringify(dataInput),
                            contentType: "application/json; charset=utf-8",
                            dataType: "json",
                            dataFilter: function (data) {
                                var x = (JSON.parse(data)).d;
                                return JSON.stringify(!x);
                            }
                        };
                        return r;
                    }
                },

我遇到的问题是,当用户没有修改文本框并返回说该描述已被使用时,会发生这种远程验证,因为它在数据库中找到了它。

如果文本字段与最初的文本字段不同,那么只能运行远程验证吗?

我注意到jQuery所需的验证有一个依赖选项,但我无法使用远程调用。

2 个答案:

答案 0 :(得分:10)

以下是将remotedepends一起使用的解决方案:https://github.com/jzaefferer/jquery-validation/issues/431

答案 1 :(得分:0)

您可以使用以下事实的组合:jquery validate仅在depends返回true时访问规则的“ param”属性,以及可以将远程嵌套在“ param”属性中的事实。

    rules: {
      Description: {
        required: true,
        maxlength: 20,
        remote: {
          param: {
            url: URL,
            data: {
              // your data
            }
          },
          depends: function() {
            //depends returns true if ok to go
            return true || false;
          }
        }
      },

Source (See normalizeRules around like 1278)