Javascript 无法在窗体内隐藏/取消隐藏按钮

Javascript 无法在窗体内隐藏/取消隐藏按钮,javascript,jquery,html,Javascript,Jquery,Html,我无法取消隐藏窗体中的按钮。在形式之外,它正在工作。 还有,有没有更好的方法来轻松完成我正在尝试的任务 <script> function action() { document.getElementById('hidden').style.visibility = 'visible'; } </script> <input type="text" onChange="action();" id="textfield" name="t

我无法取消隐藏窗体中的按钮。在形式之外,它正在工作。 还有,有没有更好的方法来轻松完成我正在尝试的任务

 <script>
    function action() { 
      document.getElementById('hidden').style.visibility = 'visible';
    }
</script>
<input type="text" onChange="action();" id="textfield" name="textfield" />
<input type="button" style="visibility: hidden" id="hidden" value="i am here" />

函数action(){
document.getElementById('hidden').style.visibility='visible';
}
请参阅 这是由于函数名
action()
造成的。可能是
混淆了函数名-action和表单属性-action。因此,要使其工作,只需将函数重命名为
action1()
,即可工作

见js

 function action1() {
   document.getElementById('hidden').style.visibility = 'visible';
 }

我尽量小心使用id名称,以免在id名称中意外使用关键字。尝试将id=“hidden”更改为id=“btnIAmHere”。此外,action已经是表单的一种方法

另一种隐藏内容的方法是设置style.display=“无”。要使其再次可见,请设置style.display=“block”


这两种使物体不可见的方法的区别在于,设置可见性并不会移除物体占用的空间。

只需调用如下方法:

<input type="text" onChange="window.action();" id="textfield" name="textfield" />


我不确定,但我认为这是因为范围不同。

我在您的代码中没有看到任何形式您的代码在JSFIDLE中工作得很好(请注意,
onChange
只有在输入字段失去焦点后才会触发):可能使用onkeyup而不是onchange这是fiddle with onkeyup函数不,当他添加一个
@maximilianlaumeister时它不起作用。。看这个。请看我的答案……就是这样。非常感谢。谢谢你的提示。我也可以通过使用jquey hide/show()解决这个问题。你认为这比改变风格更好吗?或者有点不相关?jquery.hide/show()通过更改display属性来隐藏或显示。这会隐藏元素,就好像它不在那里一样,并且它下面的项目会向上移动。将“可见性”属性设置为“隐藏”将隐藏项目,但其下方的项目不会向上移动。另外,jquery.show()方法将style.display设置为“inline”。但display属性还有更多的奇异值: