有可能有一个依赖jQuery的远程验证



我正在使用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必需的验证有一个dependents选项,但我无法让它与远程调用一起工作。

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

您可以使用以下事实的组合:jquery validate仅访问规则的"param"属性if dependents返回true,以及您可以在"aram"属性中嵌套一个remote;

    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;
          }
        }
      },

来源(参见normalizeRules,类似1278)

最新更新