以下代码显示除密码确认字段外的所有内容均为“密码不匹配”,无论密码字段包含什么。我不确定我在哪里出错了。
查看(rails form_for):
<%= form_for @user, :url => user_registration_path do |f| %>
<%= f.password_field :password, :class=>"span-live", :maxlength=>"50", :placeholder=>"Create Password*" %>
<%= f.password_field :password_confirmation, :class=>"span-live", :maxlength=>"50", :placeholder=>"Confirm Password*" %><br>
<div id="validate-password-status"></div></div>
Javascript(custom.js):
$(document).ready(function() {
$("#user_password_confirmation").keyup(validatePassword);
});
function validatePassword() {
var password = $("#user_password").val();
var password_confirmation = $("#user_password_confirmation").val();
if(password == password_confirmation) {
$("#validate-password-status").text("Passwords match");
}
else {
$("#validate-password-status").text("Passwords do not match");
}
};
答案 0 :(得分:0)
如果没有更多的页面知识,很难对其进行调试。我会这样调试:
validatePassword()
。 $(document).ready(....)
中的事件附件出现问题。我可能会看到的问题是页面有时会获得2个或更多具有相同ID的输入,因此jQuery选择器被搞砸了。您可以尝试调试它并查看。
顺便说一句,您可以将$(document).ready(function(){ ... })
更改为$(function(){ ... })
作为jQuery中的快捷方式。
答案 1 :(得分:0)
我明白了。这个页面是主页上的一个javascript弹出窗口,我忘了在这个页面的其他地方还有另一个登录的javascript弹出窗口。两个表单都使用@user的form_for帮助程序,因此它们的电子邮件和密码字段具有相同的user_password(或user_email)id,因此我需要明确指定唯一的ID。