Javascript一个表单中的两个提交按钮几乎完成
我有一个带有两个提交按钮的表单,其中附加了onClick事件。表单操作是paypal表单 如果按下“付款”按钮,表单将通过电子邮件发送,然后重定向到paypal进行付款 如果按下发票按钮,将发送一封包含表单详细信息的电子邮件,但会停止重定向到PayPal的默认操作 这一切似乎都很好,但当按下发票按钮时,它仍然会重定向到贝宝 如果按下发票按钮,我希望它发送电子邮件,但随后停止,而不是继续表单操作Javascript一个表单中的两个提交按钮几乎完成,javascript,ajax,forms,onclick,Javascript,Ajax,Forms,Onclick,我有一个带有两个提交按钮的表单,其中附加了onClick事件。表单操作是paypal表单 如果按下“付款”按钮,表单将通过电子邮件发送,然后重定向到paypal进行付款 如果按下发票按钮,将发送一封包含表单详细信息的电子邮件,但会停止重定向到PayPal的默认操作 这一切似乎都很好,但当按下发票按钮时,它仍然会重定向到贝宝 如果按下发票按钮,我希望它发送电子邮件,但随后停止,而不是继续表单操作 <form action="https://www.paypal.com/cgi-bin/web
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="paymentform" name="paymentform">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="currency_code" value="GBP">
<fieldset id="your_details" class="">
<legend>Your Details</legend>
<ol>
<li><label for="your_name">Your Name</label><input type="text" name="your_name" value="" id="your_name" class="large "></li>
<li><label for="your_position">Your Position</label><input type="text" name="your_position" value="" id="your_position" class="large"></li>
<li><label for="your_company">Your Company</label><input type="text" name="your_company" value="" id="your_company" class="large "></li>
<li><label for="your_telephone">Your Telephone</label><input type="text" name="your_telephone" value="" id="your_telephone" class="medium "></li>
<li><label for="your_mobile">Your Mobile</label><input type="text" name="your_mobile" value="" id="your_mobile" class="medium"></li>
</ol>
</fieldset>
<input type="submit" value="Pay by Credit Card →" id="cc" onclick="return email_me(document.paymentform);" class="submit_button">
<input type="submit" value="Pay by Invoice →" id="invoice" class="submit_button" onclick="return email_me(document.paymentform,true);">
你的细节
你的名字
你的位置
贵公司
你的电话
你的手机
var-xmlHttp;
var-formname;
var发票仅适用于
功能电子邮件(仅表格、发票)
{
formname=Form.name;
var params=“”;
var i;
var元素;
var类型;
变量名;
var字段值;
var可选;
var BadFields=“”;
var标题;
var Titles=新数组();
标题['item_name']=“课程标题”;
var outMessage=“”;
invoiceonly_var=invoiceonly;
//警报(formname);
//警报(形式、长度);
var Optional=新数组();
//可选字段
可选['your_position']=true;
可选['your_mobile']=true;
对于(i=0;i
是否尝试在不想提交的onclick事件末尾添加“return false”
或者,您可以将类型从“提交”更改为“按钮”-这可能会起到作用。您是否尝试在不想提交的onclick事件末尾添加“return false”
或者您可以将类型从“submit”更改为“button”,这可能会起到作用。通常我建议在您想要运行的Javascript之后添加“return false”,但由于您已经返回了一个值,我不确定这是否行得通。但是,试一试,如果它不起作用,我能问一下返回值在做什么吗 大概是这样的:
<input type="submit" value="Pay by Invoice →" id="invoice" class="submit_button" onclick="return email_me(document.paymentform,true);return false">
通常我会建议在要运行的Javascript之后添加“return false”,但由于您已经返回了一个值,我不确定这是否有效。但是,试一试,如果它不起作用,我能问一下返回值在做什么吗 大概是这样的:
<input type="submit" value="Pay by Invoice →" id="invoice" class="submit_button" onclick="return email_me(document.paymentform,true);return false">
首先,通过使用来抽象大部分AJAX逻辑,您的代码可以大大简化 其次,在
email\u me
功能的底部有return true
-尝试将其更改为:
return !invoiceonly;
从该函数返回false
将阻止表单提交。单击发票按钮时(并且invoiceonly
参数设置为true
),您不希望表单提交,因此上述逻辑