Мой код бросает следующее сообщение об ошибке:Объект не поддерживает свойство или метод «действителен»
Object doesn't support property or method 'valid'.
Это происходит потому, что текущая форма не имеет проверки. Все в порядке. Все, что я хочу, это проверить заранее, могу ли я применить метод valid
к текущей форме, чтобы избежать раздражающей ошибки JavaScript.
Это все, что я хочу. Например. if(form.isValidatable()) form.valid()
В коде нет ничего плохого. Все, что мне нужно, это знать, будет ли вызов метода или свойства вызывать исключение.
form.submit(function() {
if ($(this).valid())
onFormIsValid($(this));
else
onFormIsInvalid($(this));
});
ОБНОВЛЕНИЕ: Я новичок в jquery и благодарю вас за помощь !!!!! То, что я пытаюсь сделать, - отключить все входы непосредственно перед отправкой и после проверки. Мне не удается заставить submitHandler быть вызванным, и действительно сложно понять, почему. Вот почему я делаю это решение. См. Мой код. Как я могу улучшить это?
Я хочу, чтобы применить его ко всем формам в моем решении ....
$(document).ready(function() {
var form = $("form");
form.bind('invalid-form.validate', function() {
onFormIsInvalid($(this));
});
form.submit(function() {
if ($(this).valid())
onFormIsValid($(this));
else
onFormIsInvalid($(this));
});
});
function onFormIsValid(form) {
$("input", form).prop("readonly", "readonly");
$("input[type=submit]", form).prop("disabled", true);
$("input[type=submit]", form).each(function() {
$(this).data("val", $(this).val());
});
$("input[type=submit]", form).val("Processing...");
}
function onFormIsInvalid(form) {
$("input", form).prop("readonly", null);
$("input[type=submit]", form).prop("disabled", false);
$("input[type=submit]", form).each(function() {
$(this).val($(this).data("val"));
});
}
Если с другой стороны, я делаю следующий за представить обработчик не дозвонились вообще. Нет ошибки, нет подсказки, ничего. Я помещаю точку останова, и это похоже на обработчик, которого нет.
form.validate({
\t \t submitHandler: function() {
\t \t \t onFormIsValid($(this));
\t \t }
\t });
form.bind('invalid-form.validate', function() {
onFormIsInvalid($(this));
});
'если ($ валидатор!.) {Возвращение; } '? –
@StephenMuecke, 'if (! $. Validator)' только скажет вам, что плагин загружен, правильно? Я думаю, что OP хочет знать, была ли инициализирована одна конкретная форма для проверки с помощью .validate() '. – Sparky
@Sparky, Это причина '?' :) - не уверен, что я понимаю, что хочет OP –