2011-11-22 123 views
0

请看看这个的jsfiddle链接:如何在文本输入到输入时显示框?

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

正如你可以看到有

输入字段 & BOX

我想只有当文本中输入框出现输入。

这是如何完成的?

谢谢!

詹姆斯

+0

如果我知道我不会问。我会寻找什么来帮助我呢? – James

+0

可能类似于'onkeyup =“document.getElementById('box')。css.visibility =(this.value.length> 0)?'none':'block'' on input field。 –

回答

1

像这样的东西用jQuery:

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

或更改.change到。点击

2

启动开箱与display: none。然后,您可以捕捉到keypress事件输入:

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

check out:http: //jsfiddle.net/PDnnK/23/我用你的帮助,但它仍然无法正常工作,我是否正确地使用它? – James

+0

这是因为你的id不匹配(HTML和JavaScript)。 –

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的是,因为剪切和粘贴事件触发的文本之前被切断或粘贴。

+1

感谢!它在jsfiddle中很好用,但当我在我的代码和浏览器中使用它时,它不起作用我正在使用最新版本的chrome和safari为什么会这样呢 – James

+0

如果他使用jQuery,你的轮询函数也使用它,大部分的键和鼠标事件都被正常化了,我会毫不犹豫地使用它们;我不打算不相信你,但是我想知道什么可重现的情况(使用jQuery)暴露键/鼠标事件不可靠? –

+0

詹姆斯 - 两个最有可能的原因在jsfiddle之外,你不会为你工作:1.在你尝试运行这段代码之前,你没有找到jquery。 2.你没有运行这个代码。 – Dennis

相关问题