Javascript 复选框值返回on

Javascript 复选框值返回on,javascript,checkbox,Javascript,Checkbox,我试图确定哪些复选框被选中,如果它们被选中,我希望有一个所有选中选项的字符串 function checkedOptions() { var checklist = document.getElementById("list"); var checkboxes = checklist.getElementsByTagName("INPUT"); var options; for(var i = 1; i < che

我试图确定哪些复选框被选中,如果它们被选中,我希望有一个所有选中选项的字符串

 function checkedOptions()
    {
        var checklist = document.getElementById("list");
        var checkboxes = checklist.getElementsByTagName("INPUT");
        var options;

        for(var i = 1; i < checkboxes.length; i++)
        {
            if(checkboxes[i].checked == true)
                options += checkboxes[i].value;     
        }

        return options;
    }
对于每个复选框,此代码总是返回on。我确实读过一些关于这个主题的其他帖子,但它们都使用jquery,这是我试图避免的,因为我的工作场所正在避免它。我不确定如何获取此复选框的值

<ul class="choice" id="checklist">
    <li><label id="selection" for="list" onMouseOver="mouseOver()" onMouseOut="mouseOut()">
        <input type="checkbox" id="list" checked="true" disabled="true" onChange="checkedOptions()"/>
        (None)
    </label></li>
</ul>

您的复选框没有显式的value属性,因此它使用默认值on


如果你想让它有一个特定的值,你需要通过value=my_value给它一个值。

对于那些跟随问题标题而不是实际问题的人,这可能是对复选框返回是否选中的问题的快速回答:


以及相关的HTML?…最好是在问题中以及作为JSFIDLE。您的CHECKBOX变量具有误导性,因为它包含页面上的所有输入元素,这可能就是循环从索引i=1开始的原因。
var myVal = ( $('#myCheckbox').is(':checked') ) ? 1 : 0;

alert('myVal is: ' +myVal); //alerts 1 if checked, 0 if not checked