0

我无法检查我的表单中是否有单选选项。在我的表格中,我有 5 个项目,每个项目都有 2 个选项(单选按钮)。像这样的东西:

item 1    opt1   opt2   (name attribute is "1")
item 2    opt1   opt2   (name attribute is "2")
item 3    opt1   opt2
item 4    opt1   opt2
item 5    opt1   opt2

我已经为所有输入单选按钮指定了与动态生成的项目相同的类名,输入的名称属性也是如此。这是我检查每个项目的代码:

$(document).ready(
    function(){
        $('#submit').click(function(){
                var buttons = document.getElementsByClassName('radio_class');
                var radio_num = buttons.length; //which returns 10 in this case
                var error = "";
                for (var i=0; i<radio_num; i=i+2){
                    var radio_name = buttons[i].getAttribute("name");
                    if (!$("input[@name=radio_name]:checked").val()) {
                        error += radio_name + " ";
                    }
                }
                if (error !== "") {
                    alert (error+"not checked!");
                    return false;
                }
                else {
                    alert ("All the items have been checked.")
                }
            }
        );
    }
);

如果五个项目都没有检查,它会提示正确的消息“1 2 3 4 5 没有检查”,但是,如果我只检查一个项目,则消息“所有项目都已检查”。将收到警报。谁能帮我这个?谢谢。

4

3 回答 3

2

你写的地方

if (!$("input[@name=radio_name]:checked").val()) {
    error += radio_name + " ";
}

试试吧

if (!$("input[name='"+radio_name+"']:checked").val()) {
    error += radio_name + " ";
}
于 2012-04-27T13:52:01.033 回答
1

我认为这可能会解决您的问题:

$(document).ready(function(){
    $('#submit').click(function(){
            var buttons = $('.radio_class');
            var radio_num = buttons.length;
            var error = "";
            $.each(buttons, function(index, val){
                var radio_name = $(this).attr("name");
                if( !$('[name="'+radio_name+'"]:checked').val() )
                    error += radio_name + " ";
            });

            if (error !== "")
            {
                alert (error+"not checked!");
                return false;
            }
            else {
                alert ("All the items have been checked.")
            }
        });
});

;)

于 2012-04-27T13:54:28.850 回答
0
$(document).ready(function(){
    $('#submit').click(function(){
        var error = "";
        $('.radio_class').each(function() {
            if (!$(this).is(':checked')) {
                error += $(this).attr('name') + " ";
            }
        });
        if (error != "") {
            alert (error+"not checked!");
            return false;
        }else {
            alert ("All the items have been checked.")
        }
   });
});​

小提琴

于 2012-04-27T14:03:07.300 回答