Я пытаюсь проверить свою форму, и по какой-то причине она всегда проверяет истинность, даже если я не ввожу никакого значения в поле для полей пароля. Если я изменю свой элемент управления на текст, проверка будет работать, если я ничего не введу в текстовое поле. ниже мой код. Я не могу понять, что я здесь делаю не так.
<form id="frmChangePassword" action="http://localhost/PatientAccount" method="post">
<div class="row"><input type="password" id="txtPWD" name="txtPWD" placeholder="" style="" class="text focus" value=""></div>
<div class="row"><input type="password" id="txtReEnterPWD" name="txtReEnterPWD" placeholder="" style="" class="text" value=""></div>
<div class="row"><input type="Button" ID="btnChangePassword" Name="btnChangePassword" STYLE="" Class="btn-submit" VALUE="Change Password" onClick="javascript:ValidateResetPassword();"></div>
</form>
<script>
function ValidateResetPassword() {
$("#frmChangePassword").validate({
rules: {
"txtPWD": { required:true },
"txtReEnterPWD": { required:true }
},
messages: {
"txtPWD": { required: "Please enter Password" },
"txtReEnterPWD": {required: "Please re-enter password" }
}
});
if ($("#frmChangePassword").valid()) {
hashPassword();
}
}
</script>
1 ответ
У вас куча мелких проблем.
1) Вам не нужен встроенный JavaScript на кнопке отправки для вызова подключаемого модуля Validate. Плагин заботится об этом изнутри с помощью функции обратного вызова submitHandler
.
2) Кнопка отправки должна быть <input type="submit"
. Если вам нужно что-то другое, для этого потребуется другой код.
3) Функцию .validate()
следует использовать только для «инициализации» формы после готовности DOM. Вы неправильно заключили его в другую функцию, которая вызывается каждый раз при нажатии кнопки.
4) Поскольку условное выражение if valid
вызывается только один раз при загрузке страницы, и поскольку форма всегда недействительна при загрузке страницы, функция hashPassword()
в настоящее время никогда не вызывается. Если вы хотите, чтобы эта функция выполнялась всякий раз, когда форма действительна, просто поместите ее в функцию обратного вызова submitHandler:
.
$(document).ready(function() {
$("#frmChangePassword").validate({
rules: {
"txtPWD": {
required: true
},
"txtReEnterPWD": {
required: true
}
},
messages: {
"txtPWD": {
required: "Please enter Password"
},
"txtReEnterPWD": {
required: "Please re-enter password"
}
},
submitHandler: function (form) {
hashPassword();
form.submit();
// alert('valid form'); // for demo
// return false; // for demo
}
});
});
Рабочая демонстрация:
Документация по плагину:
http://docs.jquery.com/Plugins/Validation
Официальные образцы форм:
http://jquery.bassistance.de/validate/demo/
Похожие вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.
validate
?