【问题标题】:Check if all radio buttons checked having particular value检查所有选中的单选按钮是否具有特定值
【发布时间】:2012-06-05 22:35:23
【问题描述】:
<input type="radio" checked="checked" value="true" name="child">
<span class="label">Show</span>
<input type="radio" class="hide" value="false" name="child">
<span class="label">Hide</span>

和同一页面上的另一个单选按钮

<input type="radio" checked="checked" value="true" name="baby">
<span class="label">Show</span>
<input type="radio" class="hide" value="false" name="baby">
<span class="label">Hide</span>

我需要知道是否使用 javascript 检查了所有具有 value="false" 的单选按钮。

注意:单选按钮名称不同

【问题讨论】:

    标签: javascript radio-button


    【解决方案1】:

    如果你使用 jQuery,它非常干净:

    if ($("input[type='radio'][value='false']").not(':selected').length==0) {
      // Do what you want
    }
    

    jQuery 表达式表示所有错误的单选按钮都被选中

    【讨论】:

      【解决方案2】:

      boudou 比我快 35 秒...

      但是,除了for,您还可以使用foreach 逻辑:

      var buttons = document.getElementsByTagName("input");
      
      for (var i = 0; i < buttons.length; i++) {
          var button = buttons[i];
          var id = button.getAttribute("id");
          var type = button.getAttribute("type");
          var value = button.getAttribute("value");
          var checked = button.getAttribute("checked");
          if (type === "radio" && value === "false" && checked === "checked") {
              alert(id);
          }
      }
      

      脚本可以精简,这样写是为了更好理解。

      查看演示 here

      【讨论】:

      【解决方案3】:

      你可以试试这个:

      function testRadios() {
          var r = document.getElementsByTagName("input");
      
          for (var i=0; i < r.length; i++) {
              if (   (r[i].type == "radio")
                  && (r[i].value == "false")
                  && (r[i].checked != "checked")) {
                  return false;
          }
          return true;
      }
      

      PS:使用&lt;label&gt; 而不是&lt;span class="label"&gt;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-12
        • 1970-01-01
        • 2019-08-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多