表单数据未正确捕获

Form Data not capturing correctly

本文关键字:数据 表单      更新时间:2023-09-26

我尝试了下面的DEMO,根据复选框的选择将复选框的值设置为"0"或"1"。下面的代码适用于一个复选框,但如果我创建多个复选框则不适用于新的复选框。如何使其适用于所有复选框。

HTML:

<input type="checkbox" value="1" />Checkbox
<br/>
<br/>
<span id="result"></span>

JS:

window.onload = function () {
    var input = document.querySelector('input[type=checkbox]');
    function check() {
        if (input.checked) {
            var a = "1";
        } else {
            var a = "0";
        }
        document.getElementById('result').innerHTML = 'result ' + a;
    }
    input.onchange = check;
    check();
}

演示

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
<body>
<input type="checkbox" id="checkbox1"/>
<input type="checkbox" id="checkbox2"/>
<input type="checkbox" id="checkbox3"/>
</body>
</html>

<script type="text/javascript">
$('#checkbox1').change(function() 
{
        if($(this).is(":checked")) 
        {
            alert("checked-1");
        }
        else
        {
            alert("unchecked-1");    
        }
});
$('#checkbox2').change(function() 
{
        if($(this).is(":checked")) 
        {
            alert("checked-2");
        }
        else
        {
            alert("unchecked-2");    
        }
});
$('#checkbox3').change(function() 
{
        if($(this).is(":checked")) 
        {
            alert("checked-3");
        }
        else
        {
            alert("unchecked-3");    
        }
});
</script>

使用以下代码:

JavaScript:

  window.onload = function () {
    var input = document.querySelectorAll('input[type=checkbox]');
   // alert(input);
    function check() {
        if (this.checked) {
            var a = "1";
        } else {
            var a = "0";
        }
        document.getElementById('result').innerHTML = 'result ' + a;
    }
    for(var i = 0; i <= input.length; i++){
        if(input[i]) input[i].onchange = check;
    }
    check();
}

HTML:

<input type="checkbox" value="1" />Checkbox<br/>
<input type="checkbox" value="1" />Checkbox<br/>
<input type="checkbox" value="1" />Checkbox<br/>
<br/>
<span id="result"></span>

JSFiddle演示

如果你想要纯JS:,可以试试这个

window.onload = function () {
    var chks = document.querySelectorAll('input[type=checkbox]'); //<-- get all checkboxes
    var l = chks.length;
    while (l--) {
        chks[l].onchange = count;
    }
};
var count = function () {
    var chks = document.querySelectorAll('input[type=checkbox]'); //<-- get all checkboxes
    var l = chks.length,
        cnt = 0;
    while (l--) {
        if (chks[l].checked) {
            chks[l].value = '1';
            cnt++;
        } else {
            chks[l].value = '0';
        }
    }
    document.querySelector('#result').innerHTML = cnt;
};