我有两个表格和一个按钮。在Firefox中一切正常。我得到一个新窗口,支付Paypal,并在窗口中发生了一切,我收到了send_mail表单,该表单将向用户发送一封电子邮件。如何在Chrome中完成此工作?为什么它不起作用?我尝试过任何事情(或者我认为)!
所以:
<form name="registerForm" id="registerForm" target="_blank" action="paypal_url" method="post" onsubmit="$('#send_mail').submit();">
...
</form>
<form name="send_mail" id="send_mail" action="" method="post">
...
</form>
<a onclick="$('#registerForm').submit()">Go to paypal and send confirmation mail</a>
答案 0 :(得分:4)
除非您有充分的理由使用仅限javascript的提交,否则如果出现javascript错误,为什么要将表单设置为无法使用?
使用提交类型的标准表单输入,给它一个id,根据需要通过javascript改变提交的外观或文本,并创建onclick&amp; onsubmit事件作为该功能之上的一个层,让它们返回false。更好的后备。
我不确定你为什么要一次提交两个表单,但是这个替代方法怎么样(注意我没有测试过这个代码,但它应该传达这个想法):
<script type='text/javascript'>
$('#fallback-register-submit').hide(); // Hide the submit button.
$('#registration-link').show().click(function (){ // Show the link and attach the action.
$('#registerForm').submit();
return false; // Don't bother following the link anchor.
});
</script>
<form name="registerForm" id="registerForm" target="_blank" action="paypal_url" method="post""><!-- Single form that does all of the submitting. -->
...
...
<input type='submit' id='fallback-register-submit'>Register</input><!-- In the event of a javascript error for their browser, they can still buy your stuff! -->
<a id='registration-submit' style='display:none'>Go to paypal and send confirmation mail</a>
</form>
答案 1 :(得分:2)
为什么不将两个提交绑定到你的?
onclick="$('#send_mail').submit(); $('#registerForm').submit();"
如果您希望其他表单在第一个表单之后提交:
onclick="$('#send_mail').submit( function() {$('#registerForm').submit();}); "
假设你在这里使用jquery
答案 2 :(得分:1)
据我了解,您想使用链接提交表单吗?
为什么不使用“普通”的JavaScript呢?没有jQuery:document.getElementById(....).submit()
或者以正常的jQuery方式将提交事件链接到链接:
$(document).ready(function() {
$(".yourLinkClass").click(function() { // or "#yourLinkId" for that matter
$("#registerForm").submit();
});
});
你也可以使用提交按钮;)