2016-03-07 43 views
0

隐藏div当有人开始在搜索字段中输入文本时,我使用下面的代码隐藏div。将文本输入到字段并在文本被删除时再次显示

$('#search').keypress(function() { 
$('#hello').hide(); 
$(this).focus(); 
}); 

我的问题是,我不知道怎样才能当文本在搜索字段中被清除,我再次显示隐藏的股利。 有人可以帮助或引导我吗?

jsfiddle here

回答

0

下面是代码,使其工作

$('#search').keyup(function() { 
    if($(this).val() == ''){ 
     $('#hello').show(); 
    }else{ 
     $('#hello').hide(); 
    } 
}); 

这里更新JSFiddle代码

+0

是的:)这是非常容易,但无法弄清楚!现在它工作完美 – George

0

您可以测试是否字段为空(当KEYUP代替):

$('#search').keyup(function() { 
if($(this).val() == ''){ 
    $('#hello').show(); 
} 
else{ 
$('#hello').hide(); 
$(this).focus(); 
} 

}); 
0
$('#search').keyup(function() { 
    var searchTerm = $(this).val(); 
    var searchTermLength = searchTerm.length; 
    if (searchTermLength == 0) { 
     $('#hello').show() 
    } else { 
     $('#hello').hide() 
    }; 
}); 
0
$('#search').keyup(function() { 
    if ($("#search").val().length != 0) { 
     $('#hello').hide(); 
    } else { 
     $("#hello").show(); 
    } 
}); 
0

这是否把戏

$('#search').keyup(function() { 
     $(this).val().length ? $('#hello').hide() : $('#hello').show(); 
    }); 
0

使用更改()函数来代替,这是只有当字段的值已经完全改变调用。

$('#search').change(function() { 
if($(this).val() == ''){ 
    $('#hello').show(); 
}else{ 
    $('#hello').hide(); 
} 

});

+1

不.change()要求输入在被触发前失去焦点。这意味着直到文本输入被清除并且输入失去焦点后才会显示div。但我可能是错的。 – gavgrif

+0

是的,即使我感觉一样。只有当输入失去焦点时才会触发更改事件。 –

相关问题