подтверждение на jQuery пароль


Я построил "reset и подтвердите разделе пароль" на сайте. Он отлично работает. Просто у меня такое подозрение, что, возможно, это не самый эффективный способ. Я относительно новым для в jQuery, но я обычно могу делать работу хорошо. Я просто хотел убедиться, что я делаю их правильно.

Любые предложения приветствуются.

/////////////// RESET PASSWORD  /////////////////////
$('#reset_password').click(function reset_password(){
    //Enter a password input field a button
    $('#new_pass_field').html('<input type="text" id="new_password" name="new_password"><button id="submit_new_pass">Submit New Password</button>');
    // Bind a click to the button
    $('#submit_new_pass').bind('click', function submit_new_pass (){
        // When clicked get val of the new_password field. 
        $get_val = $("#new_password").val();
        // Hide the new_pass field and button so the confirm field and button can be entered. 
        $('#new_pass_field').hide("fast").html('<input type="text" id="password" name="password"><button id="confirm_new_pass">Confirm New Password</button>');
        // Bind click to that confirm button
        $('#confirm_new_pass').bind('click', function confirm_new(){ 
            // Get val of the confirm pass field
            $get_confirm_val = $("#password").val();
            // Check valdation if 2 passwords match
            if($get_val == $get_confirm_val){
                // If they match send to DB and encrypt. 
                $.get(uri_base +'/AJAX/update_password/admin_users/'+$get_confirm_val+'/'+Math.random(), function(msg){
                    //If returns true then send msg password changed. and hide the password row. 
                    if(msg){
                        $("#err_password").html("Your Password has been changed.").queue(function(){
                            setTimeout(function(){
                                $("#err_password").dequeue();
                            }, 3000);
                        })
                        $('#reset_pass_results').slideUp("slow");
                        $('#new_pass_field').hide("fast").html('');
                    }else{
                        // Error in the DB
                        $("#err_password").html("There was an error. Your password was not changed.");
                    }
                });
            }else{
                // Passwords didn't match now reset the clicks to try again and hide the error
                $("#err_password").html("Your Passwords didn't match!").delay(3000).fadeOut("slow");
                $('#confirm_new_pass').bind('click', confirm_new);
                $('#reset_password').bind('click', reset_password);
            }
            return false;
        });
        // Show the password field
        $('#new_pass_field').show("fast");
        return false;
    });
    // Show initial field and button. 
    $('#reset_pass_results').slideDown("slow", function(){
        $('#new_pass_field').show("fast");                          
    });
    return false;
});


1730
6
задан 27 марта 2011 в 01:03 Источник Поделиться
Комментарии
1 ответ

Выглядит хорошо для меня но так много писать меньше кода для этих относительно простых AJAX-вызовы, чтобы использовать библиотеку jQuery виде плагина, который преобразует форма тег AJAX-вызов. Я верю, что вы найдете его огромной экономии времени в будущем.

4
ответ дан 28 марта 2011 в 10:03 Источник Поделиться