如何通过jquery验证无线电[必需]

时间:2012-08-30 06:30:09

标签: jquery jquery-validate validation radio

ı有10组电台。每组有2个或3个或更多的无线电无关紧要。你需要从每组中选择至少一个无线电。

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

ı尝试一些代码,但无法解决它。 ı编写此代码以查找并显示错误,但如果有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:

如果您知道如何配置required =“required”,也许可以使用它。

<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>

4 个答案:

答案 0 :(得分:0)

可能是这个可以帮助你不要使用$ .each来实现这个

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

答案 1 :(得分: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");
  }
}

答案 2 :(得分: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/

答案 3 :(得分: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>