JavaScript密码匹配只匹配空白
JavaScript Password Match only matching on blank
无论密码字段包含什么,下面的代码都显示除了空白密码确认字段之外的所有内容"密码不匹配"。我不知道我哪里错了。
视图(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");
}
};
如果没有更多的页面知识,很难调试它。我将像这样调试它:
- 输入密码和确认。打开Javascript控制台并运行此
validatePassword()
。 - 如果你看不到任何东西,这意味着这个功能有问题。
- 如果功能正常运行,则
$(document).ready(....)
中的事件附件有问题。
我可能看到的问题是,页面有时有2个或更多的输入相同的id,所以jQuery选择器搞砸了。您可以试着调试它并查看。
$(document).ready(function(){ ... })
更改为$(function(){ ... })
作为快捷方式。我明白了。这个页面是主页上的一个javascript弹出窗口,我忘了在这个页面的其他地方还有另一个javascript弹出窗口,有登录功能。这两个表单都使用@user的form_for helper,因此它们的email和password字段具有相同的user_password(或user_email) id,因此我需要显式指定一个惟一的id。
相关文章:
- 如何删除多行HTML排列中的空白
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 不同浏览器中的空白字符正则表达式行为
- Javascript中的空白是什么
- Facebook共享显示一个接一个的空白页面
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- 如何使用密码检测网络中的状态连接
- Meteor忘记了密码的实现
- 使用密码对话框Javascript请求帮助
- Internet Explorer缺少占位符支持,特别是密码字段
- angular js密码强度显示问题
- 一个密码测试程序,如果存在空格,它会提醒用户
- 密码输入键脚本在首次使用后无法工作
- 从字符串末尾删除空白无效
- JavaScript生成html格式的密码
- 在表单完成并确认密码之前,请禁用提交按钮
- AngularJS ng选项在选择一个选项后删除了默认的空白值
- 当读取文件时,浏览器打开良好,但它是空白浏览器
- 输入类型密码与自动完成.Val()变为空白
- JavaScript密码匹配只匹配空白