2010-10-10 193 views
0

我有一個關於用Javascript選擇選擇框的問題。我上傳了http://www.mikevierwind.nl/javascript/risicoinventarisatie.htm上的文件。在這裏您可以看到一個包含大量問題和單選按鈕的表格。每個問題都有2個單選按鈕,是和不是。用javascript選擇選擇框

當你去第一個問題。 「糖尿病」比你選擇radiobutton「ja」你看到另一個問題現在將顯示。但是當我選擇「nee」時,這個問題一定會消失。我怎樣才能用Javascript創建它?我的JavaScript代碼:

var diabetes = false; 
var diabetesvraag = $("#blokken table.lichamelijkegezondheid .diabetesextra") 
var buttondiabetes = $("#blokken table.lichamelijkegezondheid .diabetesja") 

diabetesvraag.hide(); 
buttondiabetes.click(function() 
{ 
    if(diabetes == false) 
    { 
    diabetes = true; 
    diabetesvraag.show(); 
    } 

    else 
    { 
    diabetes = false; 
    diabetesvraag.hide(); 
    } 
    return false; 
}); 
+0

你確定嗎?回答「nee」會使問題看不見,但如果用戶犯了一個錯誤並想撤銷其答案會怎麼樣?另外,我發現選擇項目時存在一些問題(您只能選擇一個「nee」和一個「ja」)。 – 2010-10-30 18:48:32

回答

1

嗯,首先,你需要得到你的HTML糾正。需要將每組「是」和「否」單選按鈕與正確的name屬性組合在一起。這將告訴瀏覽器每一組「是」和「否」中只有一組是可選的。但是,name必須對每個條件都是唯一的。像這樣的東西應該做的:

<span class="radio"> 
    <input type="radio" name="condition_selection" value="yes" id="yes" /> 
    <label for="yes">Yes</label> 
    <input type="radio" name="condition_selection" value="no" id="no" /> 
    <label for="no">No</label></span> 

你也應該使用for屬性的可訪問性的原因label元素,並嘗試使用除用於標記這種形式的表其他別的東西,但是這是不相關的這裏的問題。


接下來,你可以嘗試簡化使用change事件處理程序來檢查這兩個州的Javascript代碼,像這樣的東西:

$('.add_qns').hide(); 

$('.radio :radio').change(function(){ 
    if(this.value === 'yes'){ 
     $(this).parent().next('.add_qns').show(); 
    } else { 
     $(this).parent().next('.add_qns').hide(); 
    } 
}); 

你有改變的選擇$(this).parent().next('.add_qns'),以滿足您的標記。請參閱:http://www.jsfiddle.net/yijiang/BcAwH/現場演示。

+0

感謝您的幫助。我去過這個! – robin 2010-10-10 15:02:05

+1

@robin在堆棧溢出中,如果答案已解決您的問題,您可以通過單擊答案一側上的綠色複選標記將答案標記爲已接受。這給了提問者和回答者一個獎勵他們的努力,並且將問題標記爲已解決。此外,很高興成爲服務:) – 2010-10-10 15:06:14

+0

好的謝謝你的提示。 – robin 2010-10-10 15:28:26

0

class="diabetesja"的東東按鈕爲好,因爲你的代碼只分配click事件到.diabetesja單選按鈕..

或者你可以一類class="diabetesnee"添加到您的NEE單選按鈕和改變

var buttondiabetes = $("#blokken table.lichamelijkegezondheid .diabetesja") 

var buttondiabetes = $("#blokken table.lichamelijkegezondheid .diabetesja, #blokken table.lichamelijkegezondheid .diabetesnee") 

的一點是,這兩個單選按鈕(JA和NEE)需要有單擊處理..

+0

感謝您的幫助! – robin 2010-10-10 15:01:34