我有一个表单,我有一些jQuery代码来覆盖提交过程。但它不工作,没有错误。我简化了示例代码,希望我没有输入错误。jQuery submit() - 覆盖表单动作的事件
有人知道代码有什么问题吗?它没有达到我得到警报的程度()。 click()事件正常工作。
我试着设置一个id到表单。依然没有。
使用jQuery,1.4.2.min.js
<form name="checkout_shipping" action="checkout.php" method="post">
<div class="contentText">
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, 0); document.checkout_shipping.submit();">
<td width="75%" style="padding-left: 15px;">Flat price</td>
<td>$8.00</td>
<td align="right"><input type="radio" name="shipping" value="flat_flat" onclick="this.form.submit();" /></td>
</tr>
<tr onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, 1); document.checkout_shipping.submit();">
<td>Pick-up</td>
<td>$0.00</td>
<td align="right"><input type="radio" name="shipping" value="pickup_pickup" checked="checked" onclick="this.form.submit();" /></td>
</tr>
</table>
</div>
</form>
<script>
$('form[name=checkout_shipping]').submit(function(e) {
e.preventDefault();
alert('Houston we have contact!');
$.ajax({
url: '/includes/checkout/payment.php',
data: false, // false for testing
type: 'POST',
cache: false,
async: false,
dataType: 'html',
error: function(jqXHR, textStatus, errorThrown) {
// ...
},
success: function(data) {
// ...
}
});
});
</script>
没有错误,没有工作。只需提交表单并重新加载页面。尽管你的例子在链接中做了窍门。 – tim 2012-02-03 00:40:23
我已经从JS Fiddle复制了HTML /脚本,它适用于我。你在JSFiddle上测试过代码吗? – 2012-02-03 00:47:13
我错了,当我复制你的代码并命名一个id时,我有一个错字。它确实有效。谢谢你太多了! WEEE。我永远不会猜到这只是一个事件绕过问题。 – tim 2012-02-03 00:53:46