键入时检查密码是否匹配
Checking password match while typing
我有一个带有"密码"answers"确认密码"输入字段的注册表单。我想在用户输入时检查"确认密码"是否与"密码"匹配,并给出相应的消息。所以我试着这样做:
这是HTML:
<div class="td">
<input type="password" id="txtNewPassword" />
</div>
<div class="td">
<input type="password" id="txtConfirmPassword" onChange="checkPasswordMatch();" />
</div>
<div class="registrationFormAlert" id="divCheckPasswordMatch">
</div>
这是checkPasswordMatch()函数:
function checkPasswordMatch() {
var password = $("#txtNewPassword").val();
var confirmPassword = $("#txtConfirmPassword").val();
if (password != confirmPassword)
$("#divCheckPasswordMatch").html("Passwords do not match!");
else
$("#divCheckPasswordMatch").html("Passwords match.");
}
只有当用户离开字段时,才在键入时验证。
我尝试使用onKeyUp而不是onChange,但也没有成功。
那么怎样才能做到呢?
谢谢!
在onChange事件中可能有无效语法,我避免这样使用(在html中),因为我认为这很混乱,而且在最好的情况下保持JavaScript整洁已经足够困难了。
我宁愿用javascript在文档就绪事件上注册该事件。如果你想在用户输入时进行验证,你也肯定想使用keyup事件
$(document).ready(function () {
$("#txtConfirmPassword").keyup(checkPasswordMatch);
});
以下是的工作示例
就我个人而言,我更喜欢在任何一个密码字段更改时进行检查,这样,如果他们重新键入原始密码,那么你仍然会得到相同的验证检查:
$(document).ready(function () {
$("#txtNewPassword, #txtConfirmPassword").keyup(checkPasswordMatch);
});
下面是一个工作示例
这是一个正在工作的jsfiddle
http://jsfiddle.net/dbwMY/
需要注意的事项:
- 验证document.ready函数中绑定的事件处理程序-否则加载JS时将不存在输入
- 使用keyup
也就是说,验证是一个已解决的问题——有一些框架实现了这一功能。
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
我建议使用其中一个,而不是对你编写的每个应用程序重新实现验证。
$(function() {
$("#txtConfirmPassword").keyup(function() {
var password = $("#txtNewPassword").val();
$("#divCheckPasswordMatch").html(password == $(this).val()
? "Passwords match."
: "Passwords do not match!"
);
});
});
此处演示
$('#txtConfirmPassword').keyup(function(){
if($(this).val() != $('#txtNewPassword').val().substr(0,$(this).val().length))
{
alert('confirm password not match');
}
});
这种情况下的问题是,在输入失去焦点之前,onchange事件不会触发,因此您可能需要监听keyup事件,该事件在每次击键时都会触发。
此外,我更喜欢不使用内联javascript,而是使用jQuery捕获事件。
$("#txtConfirmPassword").keyup(checkPasswordMatch);
如果我们使用引导程序,根据的结果,我们的文本将是绿色或红色
HTML
<div class="col-12 col-md-6 col-lg-4 mb-3">
<label class="form-group d-block mb-0">
<span class="text-secondary d-block font-weight-semibold mb-1">New Password</span>
<input type="password" id="txtNewPassword" class="form-control">
</label>
</div>
<div class="col-12 col-md-6 col-lg-4 mb-3">
<label class="form-group d-block mb-0">
<span class="text-secondary d-block font-weight-semibold mb-1">Confirm Password
</span>
<input class="form-control" type="password" id="txtConfirmPassword" onkeyup="checkPasswordMatch();">
</label>
</div>
<div class="registrationFormAlert" id="divCheckPasswordMatch"></div>
CSS
.text-success {
color: #28a745;
}
.text-danger {
color: #dc3545;
}
JS-
function checkPasswordMatch() {
var password = $("#txtNewPassword").val();
var confirmPassword = $("#txtConfirmPassword").val();
if (password != confirmPassword)
$("#divCheckPasswordMatch").html("Passwords do not match!").addClass('text-danger').removeClass('text-success');
else
$("#divCheckPasswordMatch").html("Passwords match.").addClass('text-success').removeClass('text-danger');
}
onkeyup事件按您的意愿"工作":
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head><title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript"><!--
function checkPasswordMatch() {
var password = $("#txtNewPassword").val();
var confirmPassword = $("#txtConfirmPassword").val();
if (password != confirmPassword)
$("#divCheckPasswordMatch").html("Passwords do not match!");
else
$("#divCheckPasswordMatch").html("Passwords match.");
}
//--></script>
</head>
<body>
<div class="td">
<input type="password" id="txtNewPassword" />
</div>
<div class="td">
<input type="password" id="txtConfirmPassword" onkeyup="checkPasswordMatch();" />
</div>
<div class="registrationFormAlert" id="divCheckPasswordMatch">
</div>
</body>
</html>
- 如何在ajax中检查密码是否小于8个字符
- 当启用false或删除chrome扩展时,是否可以询问密码
- 如何判断一个密码是否等于另一个密码
- JavaScript 在表单中注入密码是否安全
- 验证密码字段是否为空
- 检查密码是否匹配
- jQuery 验证 - 检查两个密码是否相等
- 是否可以在不使用帐户密码包的情况下获取流星用户ID
- 键入时检查密码是否匹配
- 检查密码是否与jquery匹配
- 确定rar文件是否受密码保护
- HTTPS协议的前端(客户端浏览器)是否需要密码加密
- 解析:如何知道用户是否有密码
- 检查primefaces + javascript中的密码是否匹配
- 是否有可能简化这个密码正则表达式
- 当我检查两个密码是否匹配时,没有定义样式属性
- 检查密码是否等于jQuery
- 业务催化剂:是否可以提交密码检索请求表单并通过AJAX显示结果密码检索确认页面?
- 验证密码输入类型框上的输入是否正确,显示将链接到另一个页面的按钮
- 检查密码是否只包含字母、数字或一些额外字符