проверка пароля в jquery - PullRequest
       3

проверка пароля в jquery

0 голосов
/ 21 октября 2011

Прошу прощения, ребята, я собираюсь вставить довольно грязный код, но помогите мне, если вы действительно можете реализовать функцию смены пароля, в которой при событии onclientclick кнопки смены пароля я вызываю функцию javascript, в которой я проверяю тривещи

  1. , совпадает ли текущий пароль со старым паролем (посредством вызова ajax)
  2. , а поле нового пароля и пароля подтверждения содержит те же данные или нет.
  3. и, конечно, не заполнены ли какие-либо поля или нет

, второе и третье работают нормально, но в первом случае, даже если пароль не совпадает со старым паролем, в то время как другие критерии выполнены, он меняетсяпароль

функция 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

Ответы [ 2 ]

1 голос
/ 24 октября 2011

Самый простой способ реализовать проверку с красивым отображением ошибки - это плагин eQal jquery для уменьшения нагрузки на сервер.

. Просмотрите следующие ссылки.

http://code.google.com/p/jquery-jval/

Модуль проверки jQuery и jVal.Добавление атрибута к элементу

http://code.google.com/p/jquery-jval/source/browse/trunk/jVal.html

и, если вы хотите использовать только javascript и jquery, перейдите к Javascript RegEx.Взгляните на регулярное выражение javascript и реализуйте метод, который проверяет ваши входные данные.

, если вы хотите выполнить то же самое, используйте атрибуты success: и error: .ajax () и получайте возвращаемую информацию успешноmsg.d, который вы отправляете обратно в запрос ajax.

0 голосов
/ 24 октября 2011

изменил вызов ajax, чтобы он работал

var html =  $.ajax({
            type: "POST",
            url: "UserProfile.aspx/CheckCurrentUserPassword",
            data: "{'userPasswrd':'" + $("input[id$='txtBoxPasswrd']").val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async:false
        }).responseText;

        if (html.toString().indexOf("false") >= 0) {
            isValid = false;
        }
        else {
            $("input[id$='txtBoxPasswrd']").next()
                       .removeClass()
                       .addClass('success')
                       .fadeIn('slow')
                       .text("Ok");
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...