一、如果表单是 POST 或者 GET 提交的话,可以直接这样写 jQuery:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$("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
});

二、如果表单用的 Ajax 提交的话,我们还需要修改一下:

  1. 把提交按钮 type 由 submit 改成 button 类型,然后加一个 id="submit"

  2. jQuery 代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
$("#button").click(function(){
    var submitme = true;
    $(':radio').each(function() {
        nam = $(this).attr('name');
        if (submitme && !$(':radio[name="'+nam+'"]:checked').length) {
            alert(nam+' group not checked');
            submitme = false;
        }
    });

    if (submitme) {
        // 防止重复提交
        $(this).attr({
            disabled: 'disabled',
            value: '正在提交...'
        });
        $.post("/admin/saveUserData",$("#user-form").serialize(),function(data){
            #do something
            ....
        });
    };
})

参考文章:http://stackoverflow.com/questions/10706925/jquery-ensuring-all-radio-groups-are-checked