输入删除时,javascript div消失

时间:2012-05-30 16:43:34

标签: javascript jquery html input hide

我对以下问题有疑问:

我有display:none的div。一旦用户在输入字段中键入文本(使用jQuery show()方法),就会出现此div。一切正常,但一旦我删除输入字段中输入的文本,我希望DIV再次消失。我的尝试:

如果输入为空,则使用另一个function和jQuery hide()函数,但它会阻止使用show()的函数被触发(因为默认情况下输入显然为空)。

任何想法都会非常感激!

这是我的剧本:

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>'};
}
};

function passSafetyAppear1()

{$("#passwordSafety1").show()};

function showPassSafety1()

{
password1Security();
passSafetyAppear1();
};

</script>

<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/>

提前谢谢你,

皮尔

3 个答案:

答案 0 :(得分:1)

对模糊执行该操作(当输入失去焦点时)。使用这样的代码和适当的选择器来实现这个目的:

$('input-selector').blur(function(){
    if(!$(this).val())
        $('div-selector').hide();
});

答案 1 :(得分:0)

您可以按照以下方式执行某些操作: jsFiddle example

$('input').keyup(function() {
    if ($(this).val().length > 0) $('div').show();
    else $('div').hide();
});​

答案 2 :(得分:0)

$('input-selector').keyup(function(){
        if ($(this).val().length > 0)
           $('div-selector').show();
        else
           $('div-selector').hide();
});

试一试......