繁体   English   中英

单选按钮上的jQuery单击触发器可防止选中单选按钮

[英]jQuery click trigger on radio button prevents the radio button being checked

使用.trigger("click"); 在单选按钮上触发表单中的按钮。

以下代码按预期触发按钮。 但是,由于某种原因,它使单选按钮混乱,并阻止了它的选择。 即使看起来已选中,不是吗?

  jQuery(".frm_radio").click(function(){
      jQuery('.frm_button_submit').trigger("click");
  });

.trigger是否可以将单选按钮的状态更改为未选中状态,即使它已被单击?

如果存在此问题的解决方法?

我将触发多部分表单的下一个按钮,因此用户只需单击单选按钮即可进行选择,然后进入下一部分。 我面临的问题是表单中是否存在条件字段,该条件字段取决于单选按钮选择显示还是不显示。 在这种情况下,它们不会显示,因为触发器使单选按钮混乱了。

谢谢。

:: UDPDATE ::我确信这是一个计时问题。 通过将超时设置为1秒,它可以完全按预期运行。

  jQuery(".frm_radio").click(function(){
    setTimeout(function() {
    jQuery('.frm_button_submit').trigger("click");
  }, 100);
  });

我相信正确的答案将确保在单击触发器触发之前检查无线电。 有任何想法吗?

您可以在复选框上使用change事件,如下所示:

$(".frm_radio").change(function(){
   if(this.checked){
     $('.frm_button_submit').trigger("click");
   }
});

 $(function() { var clickEvent = setInterval(function() { if ($('input[type=radio][name*=item_meta]:checked').length > 0) { $('.frm_button_submit').trigger('click'); clearInterval(clickEvent); } }, 100); }); $(document).on('click', '.frm_button_submit', function() { alert('frm_button_submit has been clicked (' + $('input[type=radio][name*=item_meta]:checked').val() + ')'); }); 
 .frm_radio input[type=radio] { display: none; } .frm_radio label { cursor: pointer; border: 1px solid black; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="frm_opt_container"> <div class="frm_radio"> <label for="field_d141k-1" class=""> <input type="radio" name="item_meta[71]" id="field_d141k-1" value="General Enquiry" data-reqmsg="Please make a selection so we know how to direct your enquiry"> General Enquiry</label> </div> <br /> <div class="frm_radio"> <label for="field_d141k-2" class="selectid"> <input type="radio" name="item_meta[71]" id="field_d141k-2" value="Make an Appointment" data-reqmsg="Please make a selection so we know how to direct your enquiry"> Make an Appointment</label> </div> </div> <br /> <button class="frm_button_submit" type="submit">Next</button> 

由于已清除setIntervel函数,因此该代码仅在第一次检查单选按钮时起作用。 如果您需要在click事件和所有事件中进行某些验证,则需要在单选按钮的值更改后再次添加setIntervel。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM