【问题标题】:javascript - check at least one radio button is selected on the pagejavascript - 检查页面上至少选择了一个单选按钮
【发布时间】:2013-02-03 08:42:59
【问题描述】:

我正在尝试检查页面上是否至少检查了我的一个单选按钮,它们位于不同的组中,因此我尝试创建所有组的数组并运行它们,但我似乎看不到什么代码有问题有人知道我在做什么错吗?

function atLeastOneRadio() { 
      var chx = document.getElementsByTagName('input');
      var day = new array();
      day[0] = "monday";
      day[1] = "tuesday";
      day[2] = "wednesday";
      day[3] = "thursday";
      day[4] = "friday";
      for (var i=0; i<chx.length; i++) {
        if (chx[i].type == 'radio' chx[i].name == day[i] && chx[i].checked) {
          return true;
        } 
      }
      return false;
    }

【问题讨论】:

    标签: javascript html radio-button


    【解决方案1】:

    如果你有 jQuery,它可能会短一些。

    类似:

    //returns number of elements checked
    $("input:checked").size();
    
    
    //if you need to check if the name of the element is equal to something
    $("input:checked").each(function(i){
        return($.inArray(this.name, days));
    });
    

    【讨论】:

    • 当我是 jquery 新手时,你能告诉我它实际上在做什么吗
    • $('input') 获取页面上的所有输入。 ':checked' 过滤所有这些输入以仅返回已检查的输入。 .each 将遍历选择器返回的所有检查输入。那么 inArray 只是一个检查对象是否在数组中的助手。 api.jquery.com/checked-selector
    • 谢谢,如果页面上至少有一个单选按钮被选中,这会返回true吗?
    • 我稍微更新了答案。如果您想知道是否检查任何输入,您可以只使用 size 。如果需要检查名称,则必须使用 .each 循环。
    【解决方案2】:
    for (var i=0; i<chx.length; i++) {
       for (var x=0; x< day.length;x++) {
            if (chx[i].type == 'radio' chx[i].name == day[x] && chx[i].checked) {
              return true;
            } 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-01
      • 2018-05-11
      • 2014-02-07
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多