我无法检查我的表单中是否有无线电选择。在我的表单中,我有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
我已经为所有输入单选按钮提供了与动态生成项目相同的类名,因此输入的name属性也是如此。这是我检查每个项目的代码:
$(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未检查”的正确消息,但是,如果我只检查一个项目,则会显示消息“已检查所有项目”。会被警告。谁能帮我这个?感谢。
答案 0 :(得分:2)
你写的地方
if (!$("input[@name=radio_name]:checked").val()) {
error += radio_name + " ";
}
尝试改为
if (!$("input[name='"+radio_name+"']:checked").val()) {
error += radio_name + " ";
}
答案 1 :(得分: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.")
}
});
});
)
答案 2 :(得分: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.")
}
});
});