2012-03-27 84 views
2

我有2組2個單選按鈕。如何重置/取消選中單選按鈕onclick事件?

的結構是這樣的

  1. 主無線1
  2. 主無線2

在主無線2,有兩個子單選按鈕。

  1. 主要電臺1
  2. 主要電臺2
    • 子電臺1
    • 子電臺2

我在做什麼,在默認的階段,它只會顯示主收音機1和主收音機2按鈕。當選擇Main Radio 2時,出現Main Radio 2的兩個子單選按鈕。

當選擇返回主電臺1,它會隱藏的主要電臺2.

,我要實現的是一個在列表中,

當單擊主電臺1,我所做的選擇對於Sub Radio 1或Sub Radio 2,也希望被取消/重置。

我試過用這個javascript,但沒有成功。

document.getElementById("subradiobuttons").reset(); 

請您好好幫我解決。謝謝。

與問候,

+0

告訴我們你的代碼,請... – Th0rndike 2012-03-27 08:07:56

回答

3

我認爲像這樣簡單任務的最佳方法並不需要像jQuery這樣的完整JavaScript庫。

document.getElementById("main2").addEventListener("click", function() 
 
{ 
 
    document.getElementById("subCheckButtons").style.opacity = 1; 
 
}, false); 
 
document.getElementById("main1").addEventListener("click", function() 
 
{ 
 
    document.getElementById("subCheckButtons").style.opacity = 0; 
 
    document.getElementById("sub1").checked = false; 
 
    document.getElementById("sub2").checked = false; 
 
}, false);
<input type="radio" id="main1" name="main" /> 
 
<input type="radio" id="main2" name="main" /> 
 
<div id="subCheckButtons" style="opacity:0;"> 
 
    <input type="radio" id="sub1" name="sub" class="subCheck" /> 
 
    <input type="radio" id="sub2" name="sub" class="subCheck" /> 
 
</div>

或者看到fiddle

+0

我試過你的,但是當我選擇回主收音機1,並選擇主收音機2時,我的選擇已經存在。我想要做的是完全重置/取消選中。 – knightrider 2012-03-27 08:36:16

+0

對不起,謝謝! – 2012-03-27 08:40:12

+0

謝謝!我將嘗試與我的代碼集成。會讓你知道結果。 – knightrider 2012-03-27 08:44:08

0

沒測試過這一點,但...

<input type="radio" onclick="document.getElementById("subradiobuttons").Checked = false;" />

或者你可以調用JavaScript函數做更多的工作/邏輯

This page has what you need

0

用jQuery做這件事要比JavaScript快得多。我建議你做這樣的事情;

給的單選像這樣

<input type="radio" name="main1"> 
<input type="radio" name="main2"> 
    <input type="radio" name="sub"> 
    <input type="radio" name="sub">​ 

然後使用jQuery,你可以做到這一點

$('input[name=main1]').on('click', function() { 
    $('input[name=sub]').attr('checked', false); 
}); 

我在這裏,你已經想出一個辦法來隱藏子無線電假設鈕釦。

參見本here

小提琴此外,請確保您包括jQuery的在包含此代碼的<script></script>標籤的頂部。

script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" 
+0

這是更快地寫,但不是更快的瀏覽器 – 2012-03-27 08:19:57

+0

@DavidDiez處理 - jQuery是的JavaScript。糟糕的JS代碼對性能可能與壞的jQ代碼一樣有害。瀏覽器以與jQ IS JS相同的方式讀取它。 – 2012-03-27 08:24:00

+0

好的或常規的JavaScript代碼比良好的jQuery代碼具有更好的性能。由於jQuery是一個JavaScript庫,除了這個簡單的任務外,還有更多的功能,所以jQuery爲同樣的任務做了更多的事情。恕我直言,有沒有必要在這裏使用jQuery ... – 2012-03-27 08:35:53

0

復位單選按鈕或RadiobuttonList形式:

private void ResetFormControlValues(Control parent) 
{ 
    foreach (Control c in parent.Controls) 
    { 
     if (c.Controls.Count > 0) 
     { 
      ResetFormControlValues(c); 
     } 
     else 
     { 
      switch ((c.GetType().ToString())) 
      { 
       case "System.Web.UI.WebControls.TextBox": 
        ((TextBox)c).Text = ""; 
        break; 
       case "System.Web.UI.WebControls.CheckBox": 
        ((CheckBox)c).Checked = false; 
        break; 
       case "System.Web.UI.WebControls.RadioButton": 
        ((RadioButton)c).Checked = false; 
        break; 
       case "System.Web.UI.WebControls.DropDownList": 
        ((DropDownList)c).SelectedIndex = 0; 
        break; 
      } 
     } 
    } 
} 
相關問題