我的表单有两个不同的提交按钮,可以提交到不同的页面。
HTML:
<form id="campaign" method="post" enctype="multipart/form-data">
<input type="submit" value="Promote!" name="ap_promote" onsubmit="promote('?page=campaigns&id=<?php echo $campaigns_id?>&edit=true&test=2')" id="ap_promote">
</form>
使用Javascript:
function promote(action)
{
if (confirm('Are you sure you want to promote this campaign?'))
{
document.getElementById('campaign').action = action;
document.getElementById('campaign').submit();
}
else
{
return false;
}
}
如您所见,它应该将表单发送到?page=campaigns&id=#&test=2
。问题是它没有显示任何确认框,它只是将表单发送给自己,而不是发送到指定的URL。
答案 0 :(得分:2)
按钮没有onsubmit
事件,它是一个表单事件。由于您计划根据点击的按钮执行不同的操作,因此您可以使用按钮onclick
和表单onsubmit
事件的组合。看看:
<form id="campaign" method="post" enctype="multipart/form-data" onsubmit="return promote()">
<input type="submit" value="Promote!" name="ap_promote" onclick="this.form.action='one'" id="ap_promote" />
<input type="submit" value="Promote!" name="ap_promote" onclick="this.form.action='two'" id="ap_promote" />
</form>
JS代码变得如此简单:
function promote() {
return confirm('Are you sure you want to promote this campaign?');
}
答案 1 :(得分:1)
在按钮点击处理程序
中将onsubmit="promote(..."
更改为onsubmit="return promote(..."
答案 2 :(得分:0)
我希望这会对你有所帮助。 您应该使用按钮而不是提交按钮
<form id="campaign" method="post" enctype="multipart/form-data">
<input type="button" value="Promote!" name="ap_promote" onclick="promote('?page=campaigns&id=<?php echo $campaigns_id?>&edit=true&test=2')" id="ap_promote">
</form>