使用POST使用php提交多个复选框,同时使用Javascript限制选中的项目

时间:2015-12-05 20:37:59

标签: php jquery html post checkbox

因此。基本上我现在知道如何为选中的复选框添加限制。 我还了解了如何通过在复选框上添加'[]'来通过POST发送多个值。 出现了另一个问题。你如何将这两者结合起来? 我应该使用什么脚本代码?因为我在下面使用的代码不接受带有'[]'的复选框。 这是我的代码:

<script type="text/javascript">
function checkboxlimit(checkgroup, limit){
    var checkgroup=checkgroup
    var limit=limit
for (var i=0; i<checkgroup.length; i++){
    checkgroup[i].onclick=function(){
    var checkedcount=0
    for (var i=0; i<checkgroup.length; i++)
        checkedcount+=(checkgroup[i].checked)? 1 : 0
    if (checkedcount>limit){
        alert("You can only select a maximum of "+limit+" candidates.")
        this.checked=false
        }
    }
    }
}

</script>

<body>
<form action="votePage.php" method="post" enctype="multipart/form-data" id="voting" name="voting">
<?php 
$limit = 0;
while($limit<3){
?>
<input type='checkbox' name='Candidate' value=<?php echo $limit;?>><?php echo $limit;?> <br>
<?php
$limit++;
}

?>
<input type="submit" name="submit"/>
</form> 
<script type="text/javascript">

checkboxlimit(document.forms.voting.Candidate, 2) //this limits checked items to only 2.
</script>
</body>

非常感谢快速助手。日Thnx。

1 个答案:

答案 0 :(得分:0)

我认为这有助于将您的javascript移到页面底部。

您可以将此语法用作输入元素的名称:

>>> unpaired = [1,3]
>>> paired = [(2,4)]
>>> map_of_symbols = {1: '.', 2: '(', 3: '.', 4: ')'}
>>> values = sorted(unpaired+[i for x in paired for i in x])
>>> seen = [map_of_symbols[i] for i in values]
>>> seen
['.', '(', '.', ')']

然后触发name='Candidate[]' 函数,如下所示:

checkboxlimit

您可以在此行之前从顶部移动您的javascript:

checkboxlimit(document.forms.voting['Candidate[]'], 2);

例如:

checkboxlimit(document.forms.voting.Candidate, 2) //this limits checked items to only 2.