2012-10-22 21 views
-5

這是我有:如何使用jquery隱藏兩個領域

<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> 

但只有一次一個工作(如果女性和肯定的總線選擇,它隱藏了第一個)

謝謝!

+1

jQuery不是一種語言。這是一個Javascript的庫,這是你實際上正在寫的東西。 – SomeKittens

+0

局部變量是你的朋友。不要多次訪問DOM,抓住元素並將其緩存在一個變量中。節省可讀性和大小。 – rlemon

回答

1

您需要兩個不同的函數名稱,因爲聲明第二個函數將覆蓋第一個函數名稱。將名稱更改爲更具說明性的內容(例如,toggleGender)查看我的更改here.

0
  1. 您正在定義兩個同名的JS函數,所以只有最後一個會起作用。
  2. 我看不出你有任何代碼jQuery的,你只是使用Javascript
1

您的兩個函數具有名稱切換()。你要麼需要將其重命名或重新編寫他們,使他們能夠動態地處理變量:

重命名爲:

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

更好的解決方案將使得功能動態,如:

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

或者其他類似的:

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

這將與被稱爲那種效果。