开发者

checking at least one radio button is selected from each group (with jquery)

I'm dynamically pulling and displaying radio bu开发者_如何学运维tton quesitons on a form (separated into different sections by jquery tabs).

So there are lots of 2, 3, 4, 5 etc radio buttons together, which have the same 'name' but different ids.

When you hit next between the sections, I want to check that at least one radio button has been selected for each group.

( When the form loads, the radio buttons have none checked by default and it has to be this way. )

I can loop through the current section's radio buttons but I'm not sure how to easily check that one has been checked for each group?


In the absence of any relationship between elements, or how to find the group names, I can only give you a pointer, but this should work (the check's triggered by clicking on the element of id="nextButton", but obviously this can be customised to any other appropriate event, such as $('form').submit(), for example):

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


$("input[@name='the_name']:checked").length;


if ($("input:checked").length < Num_of_groups)
{
    alert ("Please select atleast one radio button in each group");
    return false;
}


Input names must be same name: sendType

Check this out:

$('#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();
   }

});


use this code

remember to put button outside the form

$("#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.');
                    }
                });


Try this

if ($('input[name='+radioName+']:checked').length == '0'){
    // do something 
    return false;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜