我正在动态拉动并在表单上显示单选按钮问题(由jquery选项卡分隔成不同的部分)。
所以有很多2,3,4,5等单选按钮在一起,它们具有相同的“名称”但不同的ID。
当您点击两个部分之间的下一个时,我想检查是否已为每个组选择了至少一个单选按钮。
(当表单加载时,默认情况下单选按钮没有选中,必须这样。)
我可以循环显示当前部分的单选按钮,但我不确定如何轻松检查是否已为每个组检查过一个?
答案 0 :(得分:29)
如果元素之间没有任何关系,或者如何找到组名,我只能给你一个指针,但这应该有用(通过点击id="nextButton"
的元素触发检查,但显然这可以自定义为任何其他适当的事件,例如$('form').submit()
:
$(document).ready(
function(){
$('#nextButton').click(
function(){
var radioName = something; // use this if there's a relationship between the element
// triggering this check and the radio buttons
if ($('input[name='+ radioName +']:checked').length) {
// at least one of the radio buttons was checked
return true; // allow whatever action would normally happen to continue
}
else {
// no radio button was checked
return false; // stop whatever action would normally happen
}
}
);
}
);
答案 1 :(得分:3)
$("input[@name='the_name']:checked").length;
答案 2 :(得分:2)
if ($("input:checked").length < Num_of_groups)
{
alert ("Please select atleast one radio button in each group");
return false;
}
答案 3 :(得分:1)
试试这个
if ($('input[name='+radioName+']:checked').length == '0'){
// do something
return false;
}
答案 4 :(得分:1)
使用此代码
请记住将按钮放在表单外部
$("#buttonid").click(function(){
var check = true;
$("input:radio").each(function(){
var name= $(this).attr('name');
if($("input:radio[name="+name+"]:checked").length){
check = true;
}
else{
check=false;
}
});
if(check){
$("#formid").submit();
}else{
alert('Please select at least one answer in each question.');
}
});
答案 5 :(得分:0)
输入名称必须相同: sendType
检查一下:
$('#submitBtn').click(function(e){
alert ($('input:radio[name="sendType"]:checked').length);
if ($('input:radio[name="sendType"]:checked').length > 0) {
//GO AHEAD
} else {
alert("SELECT ONE!");
e.preventDefault();
}
});