从每个组中选择至少一个单选按钮(使用jquery)

时间:2010-10-26 22:47:23

标签: jquery radio-button

我正在动态拉动并在表单上显示单选按钮问题(由jquery选项卡分隔成不同的部分)。

所以有很多2,3,4,5等单选按钮在一起,它们具有相同的“名称”但不同的ID。

当您点击两个部分之间的下一个时,我想检查是否已为每个组选择了至少一个单选按钮。

(当表单加载时,默认情况下单选按钮没有选中,必须这样。)

我可以循环显示当前部分的单选按钮,但我不确定如何轻松检查是否已为每个组检查过一个?

6 个答案:

答案 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();
   }

});