jQuery - 确保检查所有无线电组

Nic*_*ick 6 jquery radio

我想使用jQuery循环遍历多个(动态)单选按钮组,如果没有进行选择,则会抛出错误并停止表单提交.

到目前为止,这是我的努力:

$("form").submit(function() {
    $(":radio").each(function(){
        if($(this).val().length == 0) {
            alert('Not selected all radios');
            return false;
        }
    }); 
});
Run Code Online (Sandbox Code Playgroud)

但是它总是忽略if语句会停止提交,就好像$(this)实际上不是单选按钮的值?

这是一个jsFiddle:http://jsfiddle.net/aVVW9/

非常感谢任何帮助,谢谢!

Bla*_*ger 10

试试这个.方法是遍历所有单选按钮,然后提取单选按钮组的名称,:checked以查看是否检查了该组的任何成员.在找到第一个缺失检查后,一个简单的布尔值会停止错误.

$("form").submit(function() {
    var submitme = true;
    $(':radio').each(function() { // loop through each radio button
        nam = $(this).attr('name'); // get the name of its set
        if (submitme && !$(':radio[name="'+nam+'"]:checked').length) { 
        // see if any button in the set is checked
            alert(nam+' group not checked');
            submitme = false;
        }
    });
    return submitme; // cancel the form submit
});        ?
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/mblase75/aVVW9/5/

  • 当然,您可以将警报消息更改为您喜欢的任何内容.您可能还想将"错误"类添加到广播组的标签或其他内容,以突出显示需要检查的按钮:http://jsfiddle.net/mblase75/aVVW9/6/ (2认同)