Div切换onKeyup并保持可见的Javascript和JQuery

时间:2012-05-30 11:40:15

标签: javascript jquery toggle onkeyup

这是我的问题:

我目前正在设计一个旨在验证密码安全级别的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/>

2 个答案:

答案 0 :(得分:0)

您可以使用jQuery .one()事件处理程序。 http://api.jquery.com/one/

答案 1 :(得分:0)

我相信您正在设置passwordSafety1范围的可见性。

执行此操作时,您应该检查length的{​​{1}}并将其设置为可见或不显示,具体取决于此长度;避免在无和阻止之间切换。