-5

这就是我所拥有的:

<script type="text/javascript">
function toggle(value){
  if(value=='show') { document.getElementById('busblock').style.display='block'; }
               else { document.getElementById('busblock').style.display='none'; }
}
</script>

<script type="text/javascript">
 function toggle(value){
  if(value=='show') { document.getElementById('guyblock').style.display='block'; }
           else { document.getElementById('guyblock').style.display='none'; }
  }
</script>
</head>
<body>

<form action="http://qa.onlinelabtests.com/guestlist.php" method="post">
First Name: <input type="text" name="fname" /> <br />
Last Name: <input type="text" name="lname" /> <br />
E-mail: <input type="email" name="email" /> <br />
Gender: <br />
<input type="radio" name="gender" value="male" onclick="toggle('show');">&nbsp;&nbsp;Male <br />
<input type="radio" name="gender" value="female" onclick="toggle('hide');">&nbsp;&nbsp;Female <br />

<div id="guyblock" style="display:none">
Referred By
<select name="tke">
<option value="915">Cameron</option>
<option value="930">Edgar</option>
<option value="950">JD</option>
<option value="1010">Estaban</option>
</select>
</div>

<div>
Bus Transportation <br />
<input name="bus" type="radio" value="yes" onclick="toggle('show');"> &nbsp;&nbsp;Yes<br />
<input name="bus" type="radio" value="no" onclick="toggle('hide');">&nbsp;&nbsp;No<br />
</div>

<div id="busblock" style="display:none">
Bus Time
<select name="departtime">
<option value="915">9:15PM</option>
<option value="930">9:30PM</option>
<option value="950">9:50PM</option>
<option value="1010">10:10PM</option>
</select>
</div>

<input type="submit" value="Register" />
</form>

但一次只有一个有效(如果同时选择了女性和是巴士,它会隐藏第一个)

谢谢!

4

3 回答 3

1

您的两个函数都有名称toggle()。您将需要重命名它们或重新编码它们以允许它们动态处理变量:

重命名将是:

 function toggleMale(value){
 ...
 function toggleFemale(value){

更好的解决方案是使函数动态化,例如:

function toggle(block, value) {
   if(value=='show') { 
      document.getElementById(block).style.display='block';
   }
   else {
      document.getElementById(block).style.display='none';
   }
}

这将被调用:

onclick="toggle('busblock', 'show');"

或者类似的东西。

于 2012-10-22T01:56:52.167 回答
1

You need two different function names, as declaring the second one will overwrite the first. Change the name to something more declarative (say, toggleGender) See my change here.

于 2012-10-22T01:57:35.697 回答
0
  1. 您正在定义两个具有相同名称的 JS 函数,因此只有最后一个可以工作。
  2. 我看不到你在那里编写任何 jQuery,你只是在使用 Javascript
于 2012-10-22T01:55:13.817 回答