Прошу прощения, ребята, я собираюсь вставить довольно грязный код, но помогите мне, если вы действительно можете реализовать функцию смены пароля, в которой при событии onclientclick кнопки смены пароля я вызываю функцию javascript, в которой я проверяю тривещи
- , совпадает ли текущий пароль со старым паролем (посредством вызова ajax)
- , а поле нового пароля и пароля подтверждения содержит те же данные или нет.
- и, конечно, не заполнены ли какие-либо поля или нет
, второе и третье работают нормально, но в первом случае, даже если пароль не совпадает со старым паролем, в то время как другие критерии выполнены, он меняетсяпароль
функция javascript
function check() {
var isValid = true;
// Validate User Information.
if ($("input[id$='txtBoxPasswrd']").val().length >= 0 && $("input[id$='txtBoxPasswrd']").val().trim() != "") {
$.ajax({
type: "POST",
url: "UserProfile.aspx/CheckCurrentUserPassword",
data: "{'userPasswrd':'" + $("input[id$='txtBoxPasswrd']").val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.d != null) {
var result = eval(msg.d);
if (result.toString() == "true") {
$("input[id$='txtBoxPasswrd']").next()
.removeClass()
.addClass('success')
.text("Ok");
}
else {
$("input[id$='txtBoxPasswrd']").next()
.removeClass()
.addClass('failure')
.fadeIn('slow')
.text("Password doesn't match with your old password");
isValid = false;
}
}
}
});
}
else {
$("input[id$='txtBoxPasswrd']").next()
.removeClass()
.addClass('failure')
.fadeIn('slow')
.text("Can't be blank.");
isValid = false;
}
if ($("input[id$='txtNewPassword']").val().length > 0 && $("input[id$='txtNewPassword']").val().trim() != " ") {
if ($("input[id$='txtConfirm']").val().length > 0 && $("input[id$='txtNewPassword']").val() != $("input[id$='txtConfirm']").val()) {
$('#txtConfirm').next()
.removeClass()
.addClass('failure')
.fadeIn('slow')
.text("Password doesn't match.");
isValid = false;
}
else {
$("input[id$='txtNewPassword']").next()
.removeClass()
.addClass('success')
.fadeIn('slow')
.text("Ok");
}
}
else {
$("input[id$='txtNewPassword']").next()
.removeClass()
.addClass('failure')
.fadeIn('slow')
.text("Can't be blank.");
isValid = false;
}
if ($("input[id$='txtConfirm']").val().length == 0 || $("input[id$='txtConfirm']").val().trim() == "") {
$("input[id$='txtConfirm']").next()
.removeClass()
.addClass('failure')
.fadeIn('slow')
.text("Can't be blank.");
isValid = false;
}
return isValid;
}
метод, написанный в вызове ajax, в порядке, так как он возвращает правильное сообщение об ошибке.некоторые возвращают isValid в true, удаляя метод вызова ajax, который работает нормально для двух других проверок.что я тут не так делаю ??
- спасибо mac