【问题标题】:JQuery - onclick and .click handlers on element with same IDJQuery - 具有相同 ID 的元素上的 onclick 和 .click 处理程序
【发布时间】:2014-07-13 00:05:12
【问题描述】:

我该如何解决这个问题? 在确认页面上的订单过程结束时,我有一种付款方式(可以是各种形式,按钮 ID 相同)单击确认订单按钮后,我需要使用 jquery 调用 some_script.php 并同时重定向到支付网关。单击确认按钮后,仅处理 onclick="$('#payment').submit(); ,页面被重定向但未调用 some_script.php。感谢您的帮助。

<div class="payment">
  <form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="payment">
    <input type="hidden" name="cmd" value="_cart">
    <input type="hidden" name="upload" value="1">
    ....
  </form>
  <div class="buttons">
    <div class="right">
      <a id="button-confirm" class="button" onclick="$('#payment').submit();">
      <span>Confirm</span></a>
    </div>
  </div>
</div>

<script>
$('#button-confirm').click(function() {
$.get(
   'some_script.php',
   {order_id: '<?php echo $order_id; ?>'},
   'html'
    );
});
</script>

【问题讨论】:

  • 你能编辑 HTML 吗?

标签: javascript jquery ajax onclick click


【解决方案1】:

这也许有帮助

<script>
    $('#button-confirm').click(function (e) {
        e.preventDefault();

        $.get(
           'some_script.php',
           {order_id: '<?php echo $order_id; ?>'},
           'html'
        );

        $('#payment').submit();
    });
</script>

这就是你要找的吗?


编辑:
用这个替换脚本上的提交部分,我认为它有效

var submitForm = $('#payment');
if(submitForm){
    $('#payment').submit();
}

编辑2:
如果表单标签有各种id,最好使用父类form选择器来选择表单

var submitForm = $('.payment form');
if(submitForm){
    $('.payment form').submit();
}

【讨论】:

  • 如果存在表单作为子.payment,我如何添加条件,因为有些方法没有表单提交,所以不需要提交
  • 我已经编辑了您的答案,以消除各种表单 ID,它也可以吗?
【解决方案2】:

这是因为您为同一个动作编写了 2 个不同的事件。 onclick="$('#payment').submit(); 被处理,因为它写了一个内联。

为了获得预期的结果,您必须更改以下代码。

   <a id="button-confirm" class="button">

 <script>
 $('#button-confirm').click(function() {
 $.get(
'some_script.php',
{order_id: '<?php echo $order_id; ?>'},
'html'
 );
$('#payment').submit();
});
</script>

【讨论】:

  • 谢谢,但是在我写信给 Juhana 的时候,class="payment" 的内容是确定的,不能更改
猜你喜欢
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
  • 2017-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-09
相关资源
最近更新 更多