Javascript 动态更新表单操作间歇性失败

Javascript 动态更新表单操作间歇性失败,javascript,jquery,Javascript,Jquery,单击链接后,我将触发一个模式,并根据单击的链接动态设置模式中包含的表单操作 它几乎每次都有效;但是,测试人员报告,50次中可能有1次操作未更新。间歇性故障已在IE11和最新的Chrome中重现 下面是代码的要点 <ul> <li><a class="action_url" href="http://somedomain.com">Some Domain</a></li> <li><a class="action

单击链接后,我将触发一个模式,并根据单击的链接动态设置模式中包含的表单操作

它几乎每次都有效;但是,测试人员报告,50次中可能有1次操作未更新。间歇性故障已在IE11和最新的Chrome中重现

下面是代码的要点

<ul>
  <li><a class="action_url" href="http://somedomain.com">Some Domain</a></li>
  <li><a class="action_url" href="http://anotherdomain.com">Another Domain</a></li>
  <li><a class="action_url" href="http://yetanotherdomain.com">Yet Another Domain</a></li>
</ul>

<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog">

    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Post Your Message</h4>
      </div>
      <div class="modal-body">
        <form role="form" class="message-form" method="post" action="">
          <div class="form-group">
            <input type="text" class="form-control" id="message" placeholder="message" name="message" value="">
          </div>
          <button type="submit" class="btn btn-success btn-block">Post</button>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>

<script>
$(document).on("click", ".action_url", function(e) {
  e.preventDefault();
  $(".message-form").attr('action', e.target.href);
  $("#myModal").modal();
});
</script>
&时代; 发布您的消息 邮递 接近 $(文档)。在(“单击”上,“.action_url”,函数(e){ e、 预防默认值(); $(“.message form”).attr('action',e.target.href); $(“#myModal”).modal(); });
和链接到

我已经创建了一个使用setTimeout的替代版本(但这有点像黑客,更重要的是没有完全消除这个问题)


有人在野外见过这个问题吗?知道原因吗?最重要的是,修复方法?

试试这个,希望它对你有用you@CarstenL谢谢你。经过初步测试,它似乎是有效的。我会把它交给测试人员,由他来测试。如果您能解释一下为什么使用回调函数的设计能够更一致地工作,我会非常感兴趣。原因是回调函数只在函数中的代码完成后运行。aka在启用
attr
之前,不应打开模式loaded@CarstenLøvboAndersen测试仪仍在报告一些故障。嗯…我已经更新了这个,但它是一个很长的机会,如果它不工作,那么你必须更具体的时间和地点,它失败