我正在为我现有的验证设置添加密码强度函数,而我最后一个项目我不确定如何最好地完成。我的错误显示如下所示:Jquery验证 - 删除生成的标签
highlight: function(label) {
$(label).closest('.form-element').addClass('error').closest('.form-element').removeClass('success');
$('#result').html('');/*removes any strength messages on failed validation*/
},
success: function(label) {
label
.text('OK!').addClass('valid')
.closest('.form-element').addClass('success');
},
id“result”是密码强度消息。因此,当验证错误(范围长度,要求)等被触发时,任何关于密码强度的消息都将被隐藏。
相关部分的密码强度检查是这样的:
if (strength < 2){
$('#result').removeClass();
$('#result').addClass('passwordWeak');
return '(Password is weak)'
} else if (strength == 2) {
$('#result').removeClass();
$('#result').addClass('passwordGood');
return '(Password is good)'
} else {
$('#result').removeClass();
$('#result').addClass('passwordStrong');
return '(Password is strong)'
}
};
我想什么有发生的情况是,如果任何验证错误的显示,不显示这些错误之一。他们的方式我触发它输入3个字符(显示“密码弱”),选项卡到下一个字段(它触发验证错误的最小长度不是6,并隐藏“密码弱”),然后返回添加更多字符到密码我仍然有验证错误消息,但只要我键入字符4我得到“密码是弱”。我只有一个评级显示,如果没有验证错误当前显示。
用于验证产生的错误标签,如下所示:
<label class="error" for="thispassword" generated="true">Password must be between 6 and 50 characters.</label>
可以使用hasClass ()来确定它。类似于** if(!$(label).closest('。form-element')。hasClass('error')&& strength <2)**,这意味着执行if元素不应该包含.error类 – Nirus
这给出了“标签未定义”,因为在引发验证错误之前,具有“错误”类的标签不存在,所以初始密码强度测试失败。 – Steve
可以发布一些与你的代码相关的jsfiddle ... – Nirus