2012-03-27 110 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; 
      } 
     } 
    } 
} 
相关问题