关于用jquery获取所有radio的值的问题

因为做了一个问卷,有多个单选题,想获取所有radio的值,但是如果有一道题没有做任何选项的时候,想用下面的else语句给赋值为novalue,但是输出的结果就变成了一个c... 因为做了一个问卷,有多个单选题,想获取所有radio的值,但是如果有一道题没有做任何选项的时候,想用下面的else语句给赋值为no value,但是输出的结果就变成了一个checked的值一个no value这样循环,请问是哪里出了问题呢?
var radio_value=[];
$('input:radio').each(function(){
if($(this).is(':checked')){
radio_value.push($(this).val());
}
else
radio_value.push("no value");
});
展开
 我来答
百度网友a19d193
推荐于2016-03-27 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1436万
展开全部

够呛。如果我做的话每道题肯定有一个div的,类似

<div class='question'><strong>问题</strong><br />
    <ul>
        <li><input type="radio" name="q1" value='a' />答案A</li>
        ...
    </ul>
</div>

然后js是

$('div.question').each(function(){

    if($(this).find('input:checked').length > 0) {

        radio_value.push($(this).find('input:checked:first').val());

    } else {

        radio_value.push("no value");

    }

});

追问
额。。。我只是想知道我那样写错在哪里而已
追答
radio是应该根据name分组的,$('input:radio')是所有的单项,而不是分组后的结果。

按你说的“但是输出的结果就变成了一个checked的值一个no value这样循环“ 那你肯定都是2选一的题目咯,肯定啊,假如说只有一道题,$('input:radio')会得到两个结果,但是按照规则,这两个中只有一个能被选中,必然一个checked一个novalue。如果是4选1,那就会一个checked+3个novalue了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式