Javascript 确认密码文本框中没有元素类型时,验证不正确
如何检查密码的有效性。在下面的示例中,当我尝试在密码文本字段中键入内容时,如果忽略确认密码文本字段,仍然可以提交。但是,如果我在确认密码文本字段中键入一些内容,它将与密码文本字段一起检查,无论输入是否相同Javascript 确认密码文本框中没有元素类型时,验证不正确,javascript,ajax,validation,twitter-bootstrap-3,Javascript,Ajax,Validation,Twitter Bootstrap 3,如何检查密码的有效性。在下面的示例中,当我尝试在密码文本字段中键入内容时,如果忽略确认密码文本字段,仍然可以提交。但是,如果我在确认密码文本字段中键入一些内容,它将与密码文本字段一起检查,无论输入是否相同 新密码 确认密码 验证 $(文档).ready(函数(){ $('#enableForm')。bootstrapValidator({ 容器:“#消息”, 反馈图标:{ 有效:“glyphicon glyphicon ok”, 无效:“glyphicon glyphicon删除”, 正
新密码
确认密码
验证
$(文档).ready(函数(){
$('#enableForm')。bootstrapValidator({
容器:“#消息”,
反馈图标:{
有效:“glyphicon glyphicon ok”,
无效:“glyphicon glyphicon删除”,
正在验证:“glyphicon glyphicon刷新”
},
字段:{
密码:{
启用:false,
验证器:{
注意:{
消息:“密码是必需的,不能为空”
}
}
},
确认密码:{
启用:false,
验证器:{
注意:{
消息:“确认密码是必需的,不能为空”
},
相同:{
字段:“密码”,
消息:“密码及其确认必须相同”
}
}
}
}
})
//如果密码不为空,则启用密码/确认密码验证器
.on('keyup','[name=“password”]',function(){
var isEmpty=$(this.val()='';
$(“#启用表单”)
.bootstrapValidator('enableFieldValidators','password',!isEmpty)
.bootstrapValidator('enableFieldValidators','confirm_password',!isEmpty);
//当用户开始键入密码字段时,重新验证该字段
if($(this).val().length==1){
$('#enableForm')。bootstrapValidator('validateField','password'))
.bootstrapValidator('validateField','confirm_password');
}
});
});
我认为它工作正常,检查小提琴似乎工作正常。但它不允许。如果密码错误,它不允许提交?您期望的是什么?当两者相同(密码和确认密码)时,文本字段末尾将有一个绿色勾号。如果您为密码键入了一些内容,而忽略确认密码字段(不键入任何内容)并进行检查。它仍然在确认密码字段的末尾显示绿色勾号。trry更新了fiddle我认为它的工作状态良好检查fiddle似乎工作正常。但它不允许。如果密码错误,它不允许提交?您期望的是什么?当两者相同(密码和确认密码)时,文本字段末尾将有一个绿色勾号。如果您为密码键入了一些内容,而忽略确认密码字段(不键入任何内容)并进行检查。但它仍然在确认密码字段的末尾显示绿色勾号。trry updated fiddle
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.3/css/bootstrapValidator.min.css"/>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.3/js/bootstrapValidator.min.js"> </script>
</head>
<body>
<form id="enableForm" class="form-horizontal">
<div class="form-group">
<label class="col-xs-3 control-label">New password</label>
<div class="col-xs-5">
<input type="password" class="form-control" name="password" />
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Confirm_password</label>
<div class="col-xs-5">
<input type="password" class="form-control" name="confirm_password" />
</div>
</div>
<div class="form-group">
<div class="col-md-9 col-md-offset-3">
<button type="submit" class="btn btn-default">Validate</button>
</div>
</div>
</form>
<script type="text/javascript">
$(document).ready(function() {
$('#enableForm').bootstrapValidator({
container: '#messages',
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
password: {
enabled: false,
validators: {
notEmpty: {
message: 'The password is required and cannot be empty'
}
}
},
confirm_password: {
enabled: false,
validators: {
notEmpty: {
message: 'The confirm password is required and cannot be empty'
},
identical: {
field: 'password',
message: 'The password and its confirm must be the same'
}
}
}
}
})
// Enable the password/confirm password validators if the password is not empty
.on('keyup', '[name="password"]', function() {
var isEmpty = $(this).val() == '';
$('#enableForm')
.bootstrapValidator('enableFieldValidators', 'password', !isEmpty)
.bootstrapValidator('enableFieldValidators', 'confirm_password', !isEmpty);
// Revalidate the field when user start typing in the password field
if ($(this).val().length == 1) {
$('#enableForm').bootstrapValidator('validateField', 'password')
.bootstrapValidator('validateField', 'confirm_password');
}
});
});
</script>
</html>