2012-07-12 102 views
0

我有一个奇怪的问题。 我有按钮,“NextButton”,我想先隐藏,但然后当一个复选框被点击时,它应该出现。 下面的代码不起作用,它不会给出任何错误。我已经测试了IE9和Firefox 13 我搜索其他的问题,但找不到,我有问题...html可见性风格不起作用

<html> 
<head> 
<script language="javascript"> 
     function enableNext() { 
      alert("clicked"); 

      var s1 = document.getElementsByName("NextButton"); 
      s1.style.visibility = "visible"; 
     } 
    </script> 
</head> 

<body> 
<input type="submit" name="NextButton" value="Next" style="visibility:hidden;"/> 
<input type="checkbox" onClick="enableNext()" /> 
</body> 

</html> 
+0

你确定它不会给任何错误? – BoltClock 2012-07-12 07:04:58

+0

谢谢大家。 – user156144 2012-07-12 07:18:20

回答

3

在代码中返回一个数组,并将样式应用于数组。将其更改为下面的代码。

function enableNext() { 
      alert("clicked"); 

      var s1 = document.getElementsByName("NextButton")[0];//Get the first and only button in your case 
      s1.style.visibility = "visible"; 
     } 
1

document.getElementsByName返回匹配元素的数组,你必须循环在其上并更改数组中单个项目的样式。您可以使用jQuery轻松地处理它$("[name='NextButton']").css("visibility", "visible")或者如果您想使用css display属性,您可以使用$("[name='NextButton']").show().hide()。另外,如果你不想使用jQuery,你可以使用一个id,而不是使用getElementsByName使用getElementById,它会返回你需要的单个元素。

0

我想你应该尝试使用CSS而不是JavaScript。

尝试使用

document.getElementsByName("NextButton")[0]; 
1

你应该使用HTML元素id然后document.getElementById()。这将提供完全匹配的元素。

<script language="javascript"> 
     function enableNext() { 
      alert("clicked"); 

      var s1 = document.getElementById("NextButton"); 
      s1.style.visibility = "visible"; 
     } 
</script> 

<input type="submit" id="NextButton" name="NextButton" value="Next" style="visibility:hidden;"/>

+0

尝试过,但没有奏效。无论如何,谢谢 – user156144 2012-07-12 07:18:01

+0

@ user156144:你是否添加了'id'按钮? – 2012-07-12 07:27:45