php JS html表单复选框提交问题

一个简易的php投票系统如下图多个复选框,form表单<formaction="vote.php"method="post">,vote.php是操作投票数据库的文件,复... 一个简易的php投票系统如下图多个复选框,

form表单<form action="vote.php" method="post">,vote.php是操作投票数据库的文件,复选款为<input name="20" type="checkbox" value="<?php echo $row_option['cid'] ?>" />,投票按钮<input name="" type="submit" onclick="checkedTest()" value="投票">执行了一个checkedTest()的JS函数,函数定义如下
<script type="text/javascript">
function checkedTest(){
var count = 0;
var checkArry = document.getElementsByName(20);
for (var i = 0; i < checkArry.length; i++) {
if(checkArry[i].checked == true){
count++;
}
}
if( count < 10 || count > 10 ){
alert("选择错误,请选择十个候选人!");
history.go(0);
}else {
}
}
</script>
这个函数想要的效果是多选框必须选中十个才能提交,选中多余少于十个都提示然后返回投票页面不执行vote.php,但是没达到效果,不管history.go(0);还是history.go(-1);结果都是提示选择错误后执行了vote.php再显示投票成功,求大神指教怎么办
展开
 我来答
MS中文网
推荐于2016-02-18 · TA获得超过119个赞
知道小有建树答主
回答量:48
采纳率:0%
帮助的人:25.4万
展开全部

使用onsubmit()代替onclick,并在函数中检测失败时返回false;

<form action="vote.php" method="post" onsubmit="return checkedTest()">
投票按钮<input  name="" type="submit" value="投票">
</form>
<script type="text/javascript">
function checkedTest() {
    var count = 0;
    var checkArry = document.getElementsByName(20);
    for (var i = 0; i < checkArry.length; i++) {
        if (checkArry[i].checked == true) {
            count++;
        }
    }
    if (count < 10 || count > 10) {
        alert("选择错误,请选择十个候选人!");
        return false;
    } else {
return true;
    }
}
</script>
追问
不行还是那样,先提示选择错误,点确定再提示投票成功,还是传值给vote.php了,怎么回事
追答
哦,之前的有点问题,那个onsubmit方法需要添加到form元素上,而不是添加到input上。
只要返回false表单就不会提交。
b94665
2015-11-06 · TA获得超过3845个赞
知道小有建树答主
回答量:1032
采纳率:83%
帮助的人:248万
展开全部
当然,楼上给出的答案正确,前端验证是可以了。但是,作为一个投票系统,建议后台也同样要验证一下。
追问
楼上答案不正确啊,还是那样,先提示选择错误,点确定再提示投票成功,还是传值给vote.php了,怎么回事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式