【问题标题】:Form Validation Via Jquery通过 Jquery 进行表单验证
【发布时间】:2012-10-12 05:41:12
【问题描述】:

我有很多广播组,您必须在每个组中选择至少 1 个。而且我不想使用html“必需”。

我用 jquery 写了一些东西,但它不起作用。

我只是想知道我哪里做错了。

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

     $(".radiogrup").each(function(){

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

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

    }
    else {
        //submit form and do something.
    }

    });
})

但如果其中任何一个留空,则不应提交表单。

【问题讨论】:

  • 该代码运行时会发生什么?从第一印象来看,我认为您不需要val()...
  • 它以任何方式提交表单。如果您不将任何广播组留空。
  • sel 可能等于 undefined,你能澄清一下吗? sel.length 应该是> 0。你试过调试这个吗?
  • sel 没有任何问题,它可以工作。如果您不检查收音机,它会显示错误,但是当您选择其中任何一个时,它会提交表单。
  • 也许你应该扩展你的问题,因为它很难理解。但是,据我所知,如果选中 .radiogrup 组的一个单选按钮,您的代码将提交表单。

标签: jquery validation radio-button radio-group


【解决方案1】:

试试这样的

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


 var sel= 'true';
 $(".myRadio").each(function(){
   if(this.checked){
      sel = 'false';
    }
 })

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

}
else {
    //submit form and do something.
   return true;
}

})

【讨论】:

  • sel 用作标志初始值,如果逻辑发现任何选定的收音机为真,则将其设置为假,并且取决于它的值,我们将返回表单以提交或不提交
  • 我的意思是您在某些情况下将其视为字符串,然后在其他情况下将其视为布尔值?
【解决方案2】:

替换这个:

var sel=$(this).find("input[type='radio']:checked").val();
if(sel==null){ /* Error */ }

if($(this).find(':radio:checked').length == 0) { /* Error */ }

JsFiddle demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    相关资源
    最近更新 更多