2013-01-21 178 views
0

我有2個單選按鈕A & B. B按鈕也有一個文本框。單選按鈕javascript驗證

默認情況下,下一個按鈕被隱藏,它應該出現在下列情況下

  1. 如果用戶點擊按鈕A
  2. 用戶點擊按鈕B,並在文本框

我試着輸入文本此:

JavaScript

window.onload=function(){ 
    document.getElementById("next").style.display='none'; 
} 

function shownext(){ 
    var A = document.getElementById('A').value; 
    var B = document.getElementById('B').value; 
    var name = document.getElementById('name').value; 
    if(A != "" || (B != "" && name != "")){ 
    document.getElementById("next").style.display='block'; 
    return false; 
    } 
    if(A == "" && B == "" && name == ""){ 
    document.getElementById("next").style.display='none'; 
    return false; 
    } 
} 

HTML

<input type="radio" name="A" id="A" value="A" onClick="shownext();"/> 
<input type="radio" name="A" id="B" value="B" onClick="shownext();"/> 
<input type="text" name="name" id="name" onKeyDown="shownext();" onKeyUp="shownext();"/> 

<a href="#q2" id="next"><img src="next.png"/></a> 
+1

切換到jQuery?另外,你*希望*兩個'單選按鈕'具有相同的名稱。 – hjpotter92

+0

@BackinaFlash ya錯誤我給出了不同的名稱,我想修正這個代碼,而不是切換到jQuery – Arif

+0

你錯過了第一個「if」塊的括號。 – hjpotter92

回答

1

你有一個語法錯誤在你的第一個if聲明 - 你打開多個括號比你關閉。

你的單選按鈕總是有一個value,所以你不能通過檢查它的值來檢查它們的狀態。您需要檢查他們的checked屬性。因爲您基本上只有兩種可能的結果(顯示「下一個」按鈕或隱藏它),您也不需要同時使用if s,else到第一個if會更合適。

這裏是一個working demo of the fixed code

+0

很棒的工作,謝謝你的解釋。 – Arif