Плагин проверки jQuery: добавьте правила проверки, но нужно скрыть сообщение в фокусе
Следующий метод вызывается, чтобы сделать элементы управления обязательными в зависимости от некоторых условий.
addRequired = function ($ele, msg, min, minMsg) {
$ele.rules('add', {
required: true,
min: min,
messages: {
required: msg,
min: minMsg
}
});
$.validator.unobtrusive.parseElement($ele.get(0));
}
И вызывающий код
if (requiredOptions["CompanyName"]) {
addRequired($('#CompanyName'), 'Company is required');
}
if (requiredOptions["SiteName"]) {
addRequired($('#SiteNameDD'), 'Enter a Site');
}
Проверка работает отлично. Но требование заключается в том, что когда элементы управления (например, CompanyName) сосредоточены, требуемое сообщение должно исчезнуть. Как правило, когда бы ни фокусировался требуемый элемент управления, появляется сообщение об ошибке. Требуется показать сообщение о событиях фокуса или отправки формы. Как я мог достичь этого?
обновленный
Из решения, упомянутого @Praveen_Kumar, я предложил следующие изменения
addRequired = function ($ele, msg, min, minMsg) {
$ele.rules('add', {
... ... ...
});
// Remove the validator message on focus.
$ele.on("focus", function () {
var thisRule = $.validator.staticRules($ele.get(0));
thisRule.required = false;
});
// Add the validator message on blur.
$ele.on("blur", function () {
var thisRule = $.validator.staticRules($ele.get(0));
thisRule.required = true;
});
...
}
1 ответ
Просто добавьте немного кода здесь:
addRequired = function ($ele, msg, min, minMsg) {
$ele.rules('add', {
required: true,
min: min,
messages: {
required: msg,
min: minMsg
}
});
// Remove the validator message on focus.
$ele.one("focus", function () {
$.validator.hideMessage($ele.get(0)); // Replace this with the right method.
$ele.off("focus");
});
$.validator.unobtrusive.parseElement($ele.get(0));
}
Вот $.validator.hideMessage($ele.get(0));
является псевдо-функцией, которая принимает элемент, который был проанализирован и признан недействительным. Вы не указали URL подключаемого модуля валидатора, чтобы правильно указывать точную функцию скрытия.