将文本输入输入时如何显示框?

时间:2011-11-22 19:46:43

标签: javascript html css input

请查看此jsfiddle链接:

http://jsfiddle.net/PDnnK/4/

正如你所看到的那样

INPUT FIELD &安培; BOX

我希望只有在输入中输入文字时才会出现该框。

这是怎么做到的?

谢谢!

詹姆斯

3 个答案:

答案 0 :(得分:2)

使用display: none启动此框。然后,您可以捕获输入的keypress事件:

document.getElementById('myInput').onkeypress = function () {
  document.getElementById('myBox').style.display = 'block';
}

答案 1 :(得分:1)

使用jQuery这样的东西:

$("#id-of-input").change(function() { $("#id-of-box"}.css('display', 'block'); } );

或将.change更改为.click

答案 2 :(得分:1)

绑定到“更改”通常不是非常方便,因为它通常不会触发,直到您选中或单击远离元素。

然而,民意调查也不是答案。

原始答案: http://jsfiddle.net/xNEZH/2/

超级奇妙的新答案: http://jsfiddle.net/4MhKU/1/

$('.input1').bind('mouseup keyup change cut paste', function(){
    setTimeout(function(){
        var hasInput = $('.input1').val() != "";
        $('.box')[hasInput ? 'show' : 'hide']();
    }, 20);
});

setTimeout是因为剪切或粘贴事件在文本被剪切或粘贴之前触发。