单击单选按钮提交表单,然后运行ajax

时间:2014-10-20 02:35:04

标签: jquery ajax radio-button form-submit

我有一个结帐表单,除了IE8以外的所有功能。 我正在改变它以使用ajax将输入结果保存为会话数据。 当我使用第一个'点击'功能,一切都很好,但我不能提交'提交'发射功能(无警报)。以下show / hide正在运行。 我需要另外一双眼睛。

表格

<form name="payment_method_form" id="payment_method_form" method="post">
  <div class="pay_method">
    <input type="radio" name="pay_method" value="cc"> Credit Card
  </div>
  <div class="pay_method">
    <input type="radio" name="pay_method" value="pp"> Paypal
  </div>
  <div class="pay_method">
    <input type="radio" name="pay_method" value="dd"> Direct Deposit
  </div>
  <div class="pay_method">
    <input type="radio" name="pay_method" value="cash"> Cash on Delivery
  </div>
</form>

脚本(包含在$(document).ready())

$('input[name$="pay_method"]').click(function() {
        $('#payment_method_form').submit(function(e) {
            alert("clicked")
            <!-- ajax here -->
        });
    var pay_method = $(this).val();
    $('.pay_option').hide();
    $("#"+pay_method).show();

});

1 个答案:

答案 0 :(得分:0)

submit事件监听器必须位于click事件监听器之外,并且您希望触发 submit click事件事件如下:

$('input[name$="pay_method"]').click(function() {
    //...
    $('#payment_method_form').submit(); //TRIGGER FORM SUBMIT EVENT
});
$('#payment_method_form').submit(function(e) { //START - Submit event listener
    e.preventDefault();
    alert("clicked")
});

$('input[name$="pay_method"]').click(function() {
  var pay_method = $(this).val();
  $('.pay_option').hide();
  $("#" + pay_method).show();
  $('#payment_method_form').submit();
});
$('#payment_method_form').submit(function(e) {
  e.preventDefault();
  alert("clicked")
    //<!-- ajax here -->
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="payment_method_form" id="payment_method_form" method="post">
  <div class="pay_method">
    <input type="radio" name="pay_method" value="cc">Credit Card
  </div>
  <div class="pay_method">
    <input type="radio" name="pay_method" value="pp">Paypal
  </div>
  <div class="pay_method">
    <input type="radio" name="pay_method" value="dd">Direct Deposit
  </div>
  <div class="pay_method">
    <input type="radio" name="pay_method" value="cash">Cash on Delivery
  </div>
</form>