JQuery – Почему правило проверки не поддерживает предопределенное значение?Jquery

Программирование на jquery
Ответить
Anonymous
 JQuery – Почему правило проверки не поддерживает предопределенное значение?

Сообщение Anonymous »

Я определил две функции проверки jQuery следующим образом:

Код: Выделить всё

function LessThanValidator(event) {
var lowID = event.data.lowID;
var highID = event.data.highID;
var formID = event.data.formID;
var lowValue = parseInt($(lowID).val());
//var lowValue = parseInt( $(lowID).attr("value") ); // this doesn't fix

if (isNaN(lowValue)) {
lowValue = 0;
}

$(highID).rules('remove', 'min');
$(highID).rules('add', {
min: lowValue
});
$(formID).validate().element(highID);

return false;
}

function LargerThanValidator(event) {
var lowID = event.data.lowID;
var highID = event.data.highID;
var formID = event.data.formID;
var highValue = parseInt($(highID).val());
//var highValue = parseInt( $(highID).attr("value") );   // this doesn't fix

if (isNaN(highValue)) {
highValue = 0;
}

$(lowID).rules('remove', 'max');
$(lowID).rules('add', {
max: highValue
});
$(formID).validate().element(lowID);

return false;
}

$(document).ready(function() {

// validate the #regFormBody form when it is submitted
$("#regFormBody").validate({
debug: true,
errorPlacement: function(error, element) {
error.insertAfter(element.parent());
},
rules: {
confeelow: {
required: true,
digits: true,
maxlength: 10,
max: isNaN(parseInt($("#confeehigh"))) ? 0 : parseInt($("#confeehigh"))
},
confeehigh: {
required: true,
digits: true,
maxlength: 10,
min: isNaN(parseInt($("#confeelow"))) ? 0 : parseInt($("#confeelow"))
}
},

messages: {
confeelow: {
max: "Please enter a value less than or equal to To (US$)"
},
confeehigh: {
min: "Please enter a value greater than or equal to From (US$)"
}
}
});

///////////////////////////////////////////////////////////////
$("#confeelow").bind("change", {
lowID: "#confeelow",
highID: "#confeehigh",
formID: "#regFormBody"
}, LessThanValidator);
$("#confeehigh").bind("change", {
lowID: "#confeelow",
highID: "#confeehigh",
formID: "#regFormBody"
}, LargerThanValidator);
});

Код: Выделить всё

.error {
color: red;
}

Код: Выделить всё




Test










Desired Consulting Fee From (US$) *



To (US$) *














По сути, я использую приведенные выше функции, чтобы убедиться, что значение lowID всегда меньше или равно highID.
Я использую следующий скрипт для настройки проверки.

Код: Выделить всё

  $("#confeelow").bind("change", { lowID: "#confeelow", highID: "#confeehigh", formID: "#profileFormBody" }, LessThanValidator);
$("#confeehigh").bind("change", { lowID: "#confeelow", highID: "#confeehigh", formID: "#profileFormBody" }, LargerThanValidator);
Эти две функции работают очень хорошо. Однако если я заранее определю значения #confeehigh и #confeelow, эти поля не смогут пройти проверочный тест. Я действительно не могу понять, почему. Поскольку без предварительно заполненных значений эти функции проверки работают хорошо.
Вот HTML-скрипт, вызывающий проблемы: Другими словами, если я вручную ввожу 12 для confeelow и 23 для confeehigh, проверка работает хорошо.
Без предопределенного значения у меня нет никаких проблем: Может ли кто-нибудь подсказать мне, почему это не работает для предопределенного значения?
У некоторых людей может возникнуть такой вопрос: почему вы должны использовать значение по умолчанию, если код работает с новыми введенными данными? Вот причина
  • Во-первых, пользователю будет разрешено вводить данные.
  • Во-вторых, пользователь отправит форму и сохранит ее в БД.
  • Когда в следующий раз пользователь войдет в систему снова, мне придется заново заполнить текстовое поле, используя код, подобный следующему:

Код: Выделить всё


Подробнее здесь: [url]https://stackoverflow.com/questions/3606118/jquery-why-the-validation-rule-doesnt-support-predefined-value[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»