Можно ли иметь зависимость от удаленной проверки JQuery? - PullRequest
6 голосов
/ 14 февраля 2012

Я использую удаленную проверку 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 ]

10 голосов
/ 12 сентября 2012

Вот решение для использования remote с depends: https://github.com/jzaefferer/jquery-validation/issues/431

0 голосов
/ 15 марта 2019

Вы можете использовать комбинацию того факта, что jquery validate получает доступ только к свойству "param" правила, если оно возвращает true, и того факта, что вы можете вкладывать пульт в свойство "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;
          }
        }
      },

Источник (см. normalizeRules около 1278)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...