/ / jquery валидиране: да получите дистанционно валидиране да работи отново без да променя стойността на съответното поле - javascript, jquery, jquery-validate

валидиране на jquery: стартирайте отново дистанционната проверка, без да променяте стойността на съответното поле - javascript, jquery, jquery-validate

Имам настройка за дистанционен валидатор

remote: {
type: "POST",
url: "/some/url",
data: {
value: function() {
return $("#field").val();
},
bypass: function() {
if ($("input:radio[name=toggleBypass]:checked").val() == "yes"){
return "yes";
}
return "no";
}
}
}

Ако байпасът е "да", ajax винаги връща вярно.

Работи се при размазване и изпращане, но ако нулирам стойностите на бутоните, след това подайте, не се потвърждава отново.

Например,

  1. Задайте toggleBypass на "да"
  2. Задайте поле на невалидна стойност
  3. Изпълняваме $ ("форма"). Тъй като байпасът е "да", той преминава.
  4. Задайте toggleBypass на "не"
  5. Изпълняваме $ ("форма"). Той минава, защото дистанционното не се повтори.

Някакви идеи как мога да го накарам да работи правилно?

Отговори:

2 за отговор № 1

Ако погледнете линия 897 в jquery.validate.js, ще видите оптимизация:

if ( previous.old !== value ) {

Тази линия предотвратява ново потвърждаване, ако стойността на полето не се промени. И тъй като използвате validate().element(), той проверява само тази област, а не цялата форма, така че не открива промяната в toggleBypass.

Или премахнете тази проверка от jquery.validate source или проверете целия формуляр, а не само това поле.