JavaScript复选框仅提交一个输入

时间:2015-06-02 03:33:04

标签: javascript forms checkbox

我在复选框提交时遇到问题。代码如下:

的JavaScript

function init () {
    document.getElementById("pizza").topping[0].checked=true;
    document.getElementById("btn").onclick=poll;
}
onload = init;

function poll () {
    var i, isOK, summary="";
    var form=document.getElementById("pizza");
    for (i=0; i < form.topping.length; i++) {
        if (form.topping[i].checked) {
            summary+=form.topping[i].value+" ";
        }
    }
    isOK = confirm("Submit these choices?\n" + summary);
    if (isOK) {
        form.submit();
    } else {
        return false;
    }
}

HTML

<form id="pizza" action="poll.php" method="POST">
    <div id="panel">Pizza Topping?
        <input type="checkbox" name="topping" value="Cheese">Cheese</input>
        <input type="checkbox" name="topping" value="Ham">Ham</input>
        <input type="checkbox" name="topping" value="Peppers">Peppers</input>
        <input id="btn" type="button" value="Confirm Choices"></input>
    </div>
</form>

poll.php

<?php
    echo "<br>***************<br>";
    var_dump($_POST);
    echo '*********************';
?>

JS确认消息: 提交这些选择? 芝士辣椒

poll.php的输出:

数组(大小= 1)   'topping'=&gt;字符串'Peppers'(长度= 7)

所以我的问题是:我检查了奶酪和辣椒,但我只提交了Peppers。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

将一个名称(带有后缀[])的数组赋予输入元素

<input type="checkbox" name="topping[]" value="Cheese">Cheese</input>
<input type="checkbox" name="topping[]" value="Ham">Ham</input>
<input type="checkbox" name="topping[]" value="Peppers">Peppers</input>