2012-08-30 52 views
0

我有10组收音机。每组有2或3或更多的无线电它没有关系。您需要从每个组中选择至少1个收音机。如何通过jquery验证收音机[必需]

当您提交表单时,如果它们中的任何一个(组)留空,则必须检查并返回错误。

ı尝试一些代码,但无法解决它。 ı写了这段代码找到并显示错误,但它找到一个,所以它的提交表格,如果有1满。

$('#myForm').submit(function() { 

    $(".radiogrup").each(function() { 
     var sel = $(this).find("input[type='radio']:checked").val(); 

     if (sel == null) { 
      alert("error msg"); 
      return false; 

     } 

    }); 


}); 

HTML:

如果你知道如何来配置所需= “需要” 也许我可以使用它。

<div class="radiogrup"> 
    <form id="form1" name="form1" method="post" action=""> 
     <p> 
     <label> 
      <input type="radio" name="RadioGroup1" value="radyo" id="RadioGroup1_0" /> 
      Radyo</label> 
     <br /> 
     <label> 
      <input type="radio" name="RadioGroup1" value="radyo" id="RadioGroup1_1" /> 
      Radyo</label> 
     <br /> 

     <input name="" type="submit" /> 
     </p> 
    </form> 
</div> 
+0

为什么不检查组ATLEAST一个单选按钮?这迫使用户总是要检查一下。 – sQVe

+0

用户必须填写所有问题。我有10个问题和10×4选项,所以我需要10个答案。 – bayburt

回答

0

可能是这一个可以帮助你不使用$。每本

$('#myForm').submit(function() {  
var $elems = $(".radiogrup"); 

     (function fetch(i) { 
      if(i >= $elems.length) return; // no elems left 

      var $elem = $elems.eq(i); 

      var sel = $($elem).find("input[type='radio']:checked").val(); 
      if (sel == null) { 
        alert("error msg"); // just don't call fetch again 
      } 
      else 
      { 
       fetch(i + 1); //next one 
       //apply more code here if form validation successfull 
      } 
     })(0); // start with first elem 
}); 
0
function ValidateRadioButtons() { //Function for Validating If Radio Button isselected 
    var ischecked = false; 
    $('.radiogrup').children('radio').each(function() { //LoopingthroughradioButtons 
    // "this" is the current element(radio) in the loop 
     if ($(this).is(':checked')) { 
      ischecked = true; //Radio Button is Checked 
     } 
    }); 
    if (ischecked == true) { 
    alert("Validation Passed"); 
    } 
    else { 
    alert("Please select a Radio Button"); 
    } 
} 
0

尝试纠正你的JS代码是这样的:

$('form').on("submit",function() { 
    var valid=true; 
    $(".radiogrup").each(function(){ 
     var sel=$(this).find("input:radio:checked"); 
     if(!sel.length){ 
      valid=false; 
     } 
    }); 
    if(!valid){ 
     alert("error msg"); 
     return false; 
    } 

}); 

见这个:http://jsfiddle.net/32aew/

+0

他有10组单选按钮这个代码如何适用于所有组 – rahul

+0

我已经更正了我对多个组的答案 – khomyakoshka

0

这段代码适合你

// jQuery的

$(function(){ 

$('#myForm').submit(function() { 
     if ($('input[type=radio]:checked').val() != "") { 
      return true; 
     } 

alert('error msg') 
return false 

    }); 
}) 

// HTML

<form id="myForm" name="form1" method="post" action=""> 
     <p> 
     <label> 
      <input type="radio" name="RadioGroup1" value="" id="RadioGroup1_0" /> 
      radyo 
      </label> 
     <br /> 
     <label> 
      <input type="radio" name="RadioGroup1" value="radyo" id="RadioGroup1_1" /> 
      Radyo</label> 
     <br /> 

     <input name="" type="submit" /> 
     </p> 
    </form> 
相关问题