JQuery - 具有相同ID的元素上的onclick和.click处理程序

时间:2014-07-12 14:27:31

标签: javascript jquery ajax onclick click

我该如何解决这个问题? 在确认页面上的订单处理结束时,我有付款方式的形式(可以是各种,按钮ID是相同的)点击确认订单按钮后,我需要使用jquery调用some_script.php并同时重定向到支付网关。点击确认按钮后,只需点击on" $('#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>

2 个答案:

答案 0 :(得分:0)

这可能很有帮助

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

EDIT2:
如果表单标记有各种ID,最好使用父类表单选择器来选择表单

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

答案 1 :(得分:0)

这是因为您为同一操作编写了2个不同的事件。的onclick =&#34; $(&#39;#付款&#39)。提交();处理因为它是内联的。

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

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