javascript - getElementsByTagName 不起作用

标签 javascript

当我单击删除按钮而不单击任何复选框时,它应该显示警报,但在此编码中,如果选中第一个复选框,则不会显示警报。如果选中第二个复选框,则会显示警报。

HTML:

    <div id="checkbox">
       <input type="CHECKBOX" name="MyCheckbox" class="checkbox"  value="This..." >
       <input type="CHECKBOX" name="MyCheckbox" class="checkbox"  value="This..." >
       <input type="CHECKBOX" name="MyCheckbox" class="checkbox"  value="This..." >
       <input type="CHECKBOX" name="MyCheckbox" class="checkbox"  value="This..." >
   </div>
        <form action="DeleteServer" onsubmit="return checkCheckBoxes(this);">
            <input type="SUBMIT" value="Delete!">
        </form>

脚本函数:

function checkCheckBoxes() {
    var chk = document.getElementById("checkbox").getElementsByTagName("input");
    for(var i=0; i<chk.length;i++){
       if (document.getElementById("checkbox").getElementsByTagName("input")[i].checked == false) 
       {
           alert ('You didn\'t choose any of the checkboxes!');
           return false;
       } else {    
           return true;
       }
      }
    }

最佳答案

getElementsByTagName 中有一个 s 。它是复数。它返回一个 NodeList 而不是单个元素。

根据您的 HTML,该 NodeList 将包含 2 个单独的 input

您必须循环遍历它(就像它是一个数组一样)并依次测试每个 inputchecked 属性。

关于javascript - getElementsByTagName 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22194208/

相关文章:

javascript - 如何每隔几秒更改 HTML 标记的内容

javascript - 我应该如何使用 Gatsby.js 生成缩略图和全尺寸图像

javascript - 尝试将过渡效果应用于悬停

javascript - 如果用户中止连接到服务器(连接时刷新、关闭浏览器等),如何停止执行所有功能(多个异步等)

javascript - Leaflet.js map 中的 SVG 图标

javascript - 无法公开组件库以响应 webpack 和 babel

javascript - 根据当前日期获取 XML 文件

javascript - 如何真正阻止 Chrome 中的缓存?

javascript - 理解回调错误参数所需的 async.js 解释

javascript - 下拉菜单和可悲的造型艺术