javascript - 检查密码是否相等 jQuery

标签 javascript jquery

我正在尝试验证两个输入的密码是否相同。但我似乎无法让它发挥作用。无论我在输入字段中输入什么值,结果始终是“true”。你能看出我做错了什么吗?

HTML:

<div class="form-group" id="password">
<input type="password" class="form-control" placeholder="Password" name="password">
</div>
<div class="form-group" id="repassword">
<input type="password" class="form-control" placeholder="Confirm Password" name="repassword">
</div>

jQuery:

    //Check if password is set
    $('input[name=password]').blur(function() {
        if($(this).val().length == 0){
            $('#password').addClass('has-error');
        } else {
            $('#password').addClass('has-success');
        }
    });
    //Check if repassword is set
    $('input[name=repassword]').blur(function() {
        if($(this).val().length == 0){
            $('#repassword').addClass('has-error');
        } else {
            $('#repassword').addClass('has-success');
        }
    });
    //Check if password and repassword are equal
    $('input[name=password]').blur(function() {
        if ($(this).attr('value') !== $('input[name=repassword]').attr('value')) {
            $('#password').addClass('has-error');
            $('#repassword').addClass('has-error');
        } else {
            $('#password').addClass('has-success');
            $('#repassword').addClass('has-success');
        }
    });

最佳答案

您应该使用.val()来获取文本框的值

您可以将整个事情简化为:

$('input').blur(function() {
    var pass = $('input[name=password]').val();
    var repass = $('input[name=repassword]').val();
    if(($('input[name=password]').val().length == 0) || ($('input[name=repassword]').val().length == 0)){
        $('#password').addClass('has-error');
    }
    else if (pass != repass) {
        $('#password').addClass('has-error');
        $('#repassword').addClass('has-error');
    }
    else {
        $('#password').removeClass().addClass('has-success');
        $('#repassword').removeClass().addClass('has-success');
    }
});

<强> DEMO

您可以使用 $('input').blur(function() 代替,这样它将在所有输入上触发

关于javascript - 检查密码是否相等 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24641403/

相关文章:

javascript - jquery 检测文件更改并显示它

javascript - 用javascript动态调用类的方法

javascript - 如何使用javascript打印文件夹内的所有txt文件

javascript - Marionette LayoutView 不渲染

javascript - 如何在 asp.net 中显示下拉列表的所有项目?

javascript - react 错误index.js :1452 Warning: Each child in an array or iterator should have a unique "key" prop

javascript - 如何用 jquery 清除文本区域?

javascript - Node.js 服务器时间而不是本地设备时间

javascript - ajax url 将我定向到 .php?userid=undefined

javascript - 带定时器的非阻塞脚本