我有html表单,当我单击该表单时,将其重定向到贝宝页面,但是我想在贝宝页面上重定向之前,应该先先先发送send.php和贝宝页面
我尝试了onclick按钮上的onclick函数,并且该函数使用窗口位置函数将其重定向到send.php页面,但它不能正常工作,仅重定向贝宝页面
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" enctype="multipart/form-data" >
<input class="btn btn-primary" type="submit" value="Send" onclick="mymail()">
</form>
javascript代码
<script>
function mymail() {
window.location.assign("send.php")
}
</script>
仅重定向贝宝页面,而不重定向send.php
答案 0 :(得分:0)
这里您使用的是输入类型Submit,因此在按下该按钮时,它将采用paypal.com上的默认表单提交操作
您的单击也可以在这里工作(尝试发出警报以使其将执行),但问题是单击完成后将继续执行表单的默认操作。
因此,如果您要从单击我的mail()函数中重定向,则需要将ajax添加到javascript函数中
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" enctype="multipart/form-data">
function mymail()
{
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("frm").submit()
}
};
xhttp.open("GET", "send.php", true);
xhttp.send();
return false;
}
答案 1 :(得分:0)
首先,您必须为表单添加ID并按如下所示更改onclick函数
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="Post" enctype="multipart/form-data" id="frm">
<input type="submit" value="send" onclick="return mymail()">
</form>
现在在mymail()中使用ajax调用send.php,并在ajax成功后通过javascript通过表单ID(如下所示)提交表单
function mymail()
{
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("frm").submit()
}
};
xhttp.open("GET", "send.php", true);
xhttp.send();
return false;
}
现在单击提交,页面通过ajax转到send.php,成功后将提交表单
答案 2 :(得分:0)
提交按钮的第一个事件是将表单提交到您的“操作”位置(贝宝),第二个事件“ onclick”是重定向到send.php。
因此,如果您要先将其发送到send.php,请执行动作send.php,在那做您的事情,而不是将您的帖子数据发送到paypal。 看一下这样的内容:https://stackoverflow.com/a/32197769/6340057
答案 3 :(得分:0)
首先清除action=""
和method=""
,因为即使您更改button属性,当用户在该表单中单击Enter时,无论您的JavaScript做什么,它都将重定向到给定的操作
第二,将您的<input>
更改为<button type="button">
而不是<input type="submit">
,然后像您一样在此处调用onclick="mymail()"
函数。
这是您的表格的外观:
<form enctype="multipart/form-data" >
<button class="btn btn-primary" type="button" onclick="mymail()">Send</button>
</form>
确保您已阅读所有表单字段并将其放入数据中。
祝你好运。