jQuery Validate работает (срабатывает ошибка при необходимости, поле электронной почты пуста), но код в submitHandler не запускается (предупреждение не отображается). И поскольку submitHandler не работает, я не ожидаю, что форма будет размещаться в secure/process_login.php, так как form.submit(); после после неработающего предупреждения(), но он делает, если он проверяет.jQuery Подтвердить: submitHandler отправляет форму без удара form.submit
Форма Код:
<form action="secure/process_login.php" method="post" id="login_form" name="login_form">
<fieldset>
<legend>Log In</legend>
<div class="form-group">
<label for="inputEmail">Email address</label>
<input type="text" id="email" class="form-control" name="email"placeholder="Your Email Address" required>
</div>
<div class="form-group">
<label for="inputPassword">Password</label>
<input type="password" class="form-control" name="password" id="password" placeholder="Your Password">
<input type="hidden" name="p" id="p" value="">
</div>
<button type="submit" class="btn btn-primary form-control">Log In</button>
</fieldset>
</form>
Сценарий:
<script>
$("#login_form").validate({
submitHandler: {
function formhash(form, password) {
// Create a new element input, this will be out hashed password field.
var p = document.createElement("input");
// Add the new element to our form.
form.appendChild(p);
p.name = "p";
p.type = "hidden"
p.value = hex_sha512(password.value);
// Make sure the plaintext password doesn't get sent.
password.value = "";
// Finally submit the form.
alert("Test");
form.submit();
}
}
});
</script>
Спасибо за ответ Phil. Я изменил его и снова попытался. Самое смешное в том, что теперь выглядят и проверены изменения проверки (обычный текст и красивый ящик). Но остальное остается неизменным, предупреждение не запускается, и форма отправляется в любом случае. –
Я скопировал ваш точный код, применил мое исправление, и он прошел локально для меня. Без исправления я видел синтаксическую ошибку –
Является ли ваш тег скрипта до или после формы HTML? Если это необходимо после того, как вам нужно будет обернуть его в $ (document) .ready (function() {}) –