Disable submit, только если действительный
im, используя jquery с asp.net mvc.
Я делаю что-то подобное, чтобы кнопка отправки была отключена при нажатии.
но если есть ошибки проверки, я не хочу, чтобы она была отключена.
$('form').submit(function () {
if ($('form').valid()) {
$('input[type=submit]', this).attr('disabled', 'disabled');
}
});
это делает его отключенным, но даже если есть ошибки проверки.
что не так?
Ответы
Ответ 1
EDIT: я попробую еще раз после первого взлома: P
$('form').submit(function () {
if ($('form').valid()) {
$('input[type=submit]', this).attr('disabled', 'disabled');
}
});
Возможно, на странице есть другие формы, и он проверяет неверный?
$('form').submit(function () {
if ($(this).valid()) {
$(this).find('input[type=submit]').attr('disabled', 'disabled');
}
});
oh и вы сделали $('form'). validate(), чтобы включить проверку (которая, как я полагаю, автоматически вызывается MVC, если вы используете проверку MVC, но я не уверен в этом на 100%)?
Ответ 2
$('form'). valid() возвращает ошибку, когда я запускаю ее в консоли. Вы даже уверены, что действительная функция? AFAIK это не так.
В CSS, действительный псевдокласс применяется к определенным входам, а не к элементу формы. Я могу только предположить, что это та же самая сделка в JavaScript.
С учетом сказанного, в настоящее время проверка HTML имеет точную поддержку браузера, и вы не должны слепо полагаться на нее. Если ваша форма прост, как несколько "обязательных" полей, вы можете прокручивать каждый элемент ввода и проверять, является ли this.getAttribute('required') && this.value!= ''.
Ответ 3
Другим трюком (не особо актуальным, но у меня была аналогичная проблема) является то, что если у вас есть валидация на стороне сервера или что-то действительно происходит на сервере.
В коде, в первую очередь, ваша функция должна быть RE-ENABLE, КНОПКА.
Потому что у меня была странная ошибка (все еще не могу понять, как они это сделали), но в основном: проверка на стороне клиента была прекрасной (также, если они отключены JS), а на сервере я обнаружил ошибку, я показал эту ошибку в ненавязчивый путь в доме на пост-обратно. Поэтому они могли попытаться исправить то, что, черт возьми, пошло не так. Но, очевидно, кнопка была отключена... так что я получил миллионы жалоб. Поэтому, мораль из истории, снова включите кнопку, чтобы, если она вернется на ту же страницу, ваша кнопка все равно будет работать. Yay.
Ответ 4
Вы использовали другой плагин jquery для использования функции "valid()" в вашей форме? Поскольку $('form').valid()
ничего не значит в Javascript с ядром jquery lib