多组单选按钮验证javascript

多组单选按钮验证javascript,javascript,php,jquery,Javascript,Php,Jquery,我有多个分组单选按钮,名称为optionRadios1到5。我想通过javascript验证它们,但我的验证代码不起作用,仍然继续提交表单 这是我的密码: function submitForm(){ var counter = "<?php echo $count;?>"; //$count is the total number of grouped radio buttons for(j=1;j<=counter;j++) { var radio

我有多个分组单选按钮,名称为optionRadios1到5。我想通过javascript验证它们,但我的验证代码不起作用,仍然继续提交表单

这是我的密码:

function submitForm(){

var counter = "<?php echo $count;?>"; //$count is the total number of grouped radio buttons

for(j=1;j<=counter;j++) {   
        var radioname = "optionRadios" + j;

        var elem=document.forms['test-form'].elements[radioname];
        len=elem.length-1;
        chkvalue='';

        for(i=0; i<=len; i++){
            if(elem[i].checked){chkvalue=elem[i].value;}
        }
        if(chkvalue=='') {
            alert('There are still unanswered questions. ' + radioname);
        return false;

        }else {
         $('#test-form').submit();

        }
    }
}
这是应使用的表格:

<form action="#" method="post" id="test-form">
//lots of codes here

<button type="submit" class="btn btn-primary" onclick="return submitForm();" id="next">Next</button>


</form>

您是否尝试过使用jQuery验证方法

试试这个

$('#test-form').submit(function() {

    var counter = "<?php echo $count;?>"; //$count is the total number of grouped radio buttons

    console.log("Counter: "+counter);
    for(j=1;j<=counter;j++) {   
        var radioname = "optionRadios" + j;
        console.log("RadioName: "+radioname);

        var elem=document.forms['test-form'].elements[radioname];
        len=elem.length-1;
        chkvalue='';

        console.log("Length: "+len);
        for(i=0; i<=len; i++){
            if(elem[i].checked){chkvalue=elem[i].value;}
        }

        console.log("Chkvalue: "+chkvalue);
        if(chkvalue=='') {
            alert('There are still unanswered questions. ' + radioname);
            return false;
        }
    }

    return true;
});
从按钮中删除onclick属性,并查看正在调试的值。它将帮助您查看代码在哪里工作,在哪里不工作。试试看,让我们知道控制台输出的内容。

JAVASCRIPT

$('input[type=button]').click(function(){
var i= 1 ;
var msgError= "";
while($('input[name=optionRadios'+i+']').length ){

    var is_it_ok = false;
    $('input[name=optionRadios'+i+']').each(function(){
        if($(this).is(":checked")){
            is_it_ok = true;

        }

    });
    if(!is_it_ok){
        msgError += "Erreur : optionRadios"+i; 
    }
    i++;
}
if(!msgError.length){
       alert("ok");
    return true;
}else{
    alert(msgError);
    return false;
}
});
              });
HTML


演示:

想澄清一下我的代码不起作用吗?对不起,我的javascript验证代码不起作用了什么是nmean不起作用的?好的,它怎么不起作用?它做了什么不应该做的,它不做什么不应该做的?你能设置一个现场演示,在,或类似的,并说明缺陷?仍然继续提交的形式,你如何防止它呢???控制台有错误吗?在你这边调试怎么样?!还没有,我不知道如何通过验证单选按钮jQuery@Lix,如果我的声誉不超过50,我无法发表评论。。。。请不要简单地投反对票…@Christian Burgos这里有一个例子:我给了你一张赞成票。别担心,别担心happy@nodeffect-该限制是有原因的-忽略它是我的操作所基于的。它仅返回分组单选按钮的最后一个名称,并且仍然提交。您能否复制/粘贴完整输出,从计数器:到Chkvalue?它不起作用,sorryit仍在提交…因为您已经使用jquery,我用jquery重写了all,并更新了jsfiddle,而不是php/javascript/jquery
<form name="test-form">
<input type="radio" name="optionRadios1" value="1" />
<input type="radio" name="optionRadios1" value="1"/>
<input type="radio" name="optionRadios1" value="1"/>
<input type="radio" name="optionRadios2" value="1"/>
<input type="radio" name="optionRadios2" value="1"/>
<input type="radio" name="optionRadios2" value="1"/>
<input type="button" />
</form>