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