这是我的问题:
我目前正在设计一个旨在验证密码安全级别的JavaScript函数。输入密码后,我使用jQuery来切换div的显示(默认情况下是不可见的),其中包含句子"您的密码是" +给定的安全等级。
一切正常,但我在密码输入中使用onKeyUp event
来触发我的div出现。然而,当然,每一把按键都会切换我div的可见性。结果:在密码输入中按下每个第一个键,我的div出现,按下一个键,它再次消失。是否有办法在按下第一个键的情况下切换div一次,并按下下一个键防止它消失?
以下是代码:
function password1Security()
{
var pwd1 = document.getElementById("password1");
var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
var pwdsft = document.getElementById("passwordSafetyLevel1");
{
if (strongRegex.test(pwd1.value))
{
pwdsft.innerHTML = '<span style="color:green;">Safe</span>'
}
else if (mediumRegex.test(pwd1.value))
{
pwdsft.innerHTML = '<span style="color:orange;">Quite Safe</span>'
}
else
{
pwdsft.innerHTML = '<span style="color:red;">Unsafe</span>'
};
}
};
<input name="password1"
id="password1"
type="password"
size="15"
maxlength="20"
style="width:500px; height:30px;"
onKeyUp="showPassSafety1()" />
<br/>
<span name="passwordSafety1"
id="passwordSafety1"
style="font-size:12pt; display:none;">Your password is <b name="passwordSafetyLevel1" id="passwordSafetyLevel1"></b>.
< /span>
<br/>
答案 0 :(得分:0)
您可以使用jQuery .one()
事件处理程序。
http://api.jquery.com/one/
答案 1 :(得分:0)
我相信您正在设置passwordSafety1
范围的可见性。
执行此操作时,您应该检查length
的{{1}}并将其设置为可见或不显示,具体取决于此长度;避免在无和阻止之间切换。