如何让jquery比较运算符工作

如何让jquery比较运算符工作,jquery,Jquery,我可能在这里漏掉了什么(好的,我可能在那里漏掉了什么),但是在blur这两个字段console.log上有相同的值,但是它应用了error\u message类,好像它们没有?我已经试过了它们都使用相同的-为什么?即使元素具有相同的值,它们的=比较将是false,因为它们是不同的DOM元素。要比较值,请使用打印输出中使用的相同的val()函数 //check if the password mataches the password confirmation var passMatc

我可能在这里漏掉了什么(好的,我可能在那里漏掉了什么),但是在blur这两个字段console.log上有相同的值,但是它应用了error\u message类,好像它们没有?我已经试过了它们都使用相同的-为什么?

即使元素具有相同的值,它们的
=
比较将是
false
,因为它们是不同的DOM元素。要比较值,请使用打印输出中使用的相同的
val()
函数

  //check if the password mataches the password confirmation
    var passMatch = $('input[name="password"]');
    var passConfirm = $('input[name="confirm_password"]');
        passConfirm.on('blur',function(e) {
            console.log(passMatch.val());
            console.log(passConfirm.val());
            if(passMatch == passConfirm) {
                passConfirm.css({backgroundColor: 'lightgreen'});
                
            }else {
                passConfirm.addClass('error_message');
            }       
        })

您正在比较元素,而不是它们的值。看看您的
控制台.log
行与
if
行之间的区别。哇-谢谢,抱歉,今天太长了!我也会给你同样的答案,你知道吗?但是,代码中有一个小错误:如果两个密码匹配,则不会删除“error\u message”类:)@平谷-接得好。没有在代码中查找其他问题。在我的代码中,这不是一个bug,但在OP中:DIf我们真的想挑剔,如果两个字段重合,绿色背景也是如此:背景直接在元素上声明,通过对其应用类很难删除:)我想这是另一场战斗。我并不是真的把注意力集中在其他的代码上——只有那个导致他犯错误的代码:)那是原始的海报或文章的作者。
var passMatch = $('input[name="password"]');
var passConfirm = $('input[name="confirm_password"]');
passConfirm.on('blur',function(e) {
    if(passMatch.val() == passConfirm.val()) {
        passConfirm.css({backgroundColor: 'lightgreen'});
        passConfirm.removeClass('error_message');
    } else {
        passConfirm.addClass('error_message');
    }
})