JQuery Проверить удаленную опцию с параметром пути - PullRequest
0 голосов
/ 26 октября 2018

Поле в одной из моих форм выполняет удаленный вызов для проверки доступности имени. По умолчанию подключаемый модуль проверки хочет использовать GET и добавляет строку запроса с ключом имени поля и значением значения поля.

Вы можете переопределить это, изменив POST и установив значение данных.

Однако в обоих случаях сам URL должен быть статическим. Например, но по умолчанию вам не нужно больше, чем это:

remote: {
  url: '/validationService'
}

Что сделает GET для /validationService?fieldname=fieldvalue

Поскольку «remote» является параметром времени инициализации, вы обычно не можете использовать динамический URL. Я попытался вставить выражение функции, и оно просто строчило его, а не оценило.

Проблема

Мне нужно, чтобы оно было динамичным. Значение поля передается в качестве параметра пути. Другими словами, когда проверка запускается, она отправляет запрос на:

validationService/fieldvalue

(не беспокойтесь, validationService может обрабатывать ТОЛЬКО это конкретное поле, поэтому не нужно нигде указывать имя поля). Отсутствует POST или сопутствующая полезная нагрузка, и хотя это GET, строки запроса нет.

Есть идеи, как мне это сделать? (динамически оцениваемый URL на основе текущего значения поля во время проверки)


Дополнительные сведения

Служба проверки возвращает JSON, отформатированный таким образом:

{
  comment: "Success OR error message",
  isValid: true
}

Итак, чтобы узнать, был ли он успешным или нет, мне нужно получить сообщение (которое, насколько я могу судить, является асинхронной операцией) и затем оценить параметр «isValid». В идеале я бы также добавил комментарий как "сообщение".


Обновление 2

Мне удалось убедить серверную часть просто обновить службу, чтобы она могла принимать строку запроса и работать ожидаемым образом. Это создало новую проблему, но это может перейти к другому вопросу. Обычно я не возражаю продолжать оставаться «объектом тестирования» для дальнейших исследований (в случае, если у кого-то еще есть проблемы, подобные моей первоначальной), но я не настроен на запуск двух отдельных сред.

1 Ответ

0 голосов
/ 26 октября 2018

Используйте пользовательский метод (предоставляемый плагином) (http://docs.jquery.com/Plugins/Validation/Validator/addMethod), который делегирует удаленному методу, и добавьте селектор класса, соответствующий этому методу.

<input class="dynamicurl" />

$.validator.addMethod("dynamicurl", function(value, element) {
  return $.validator.methods.remote.call(this, value, element, "http://yoururl/validationService/"+value);
}, $.validator.messages.remote);

Надеюсь, это поможет вам!

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