我试图在用户离开页面时以编程方式提交表单,无论他们是否点击了“提交”按钮。我过去曾使用过这种方法从函数中提交表单,但出于某种原因我无法使用onclick
。
当用户点击“提交”按钮时,表单正在正确提交,因此html表单和php肯定是正确设置的。我正在使用jquery-1.8.2
<form name="form2" id="form2" method="post" action="form2-exec.php">
<!-- Form Elements -->
<a class="back" href="form1.php" onClick="submitForm()">BACK</a>
<a href="#" class="next"><input type="submit" value="SUBMIT" /></a>
</form>
<script language="javascript" type="text/javascript">
function submitForm() {
$("#form2").submit();
}
</script>
我也尝试过使用点击功能
$(".submitForm").click(function () {
$("#taste").submit();
});
并在HTML中替换此行:
<a class="back" href="form1.php" onClick="submitForm()">BACK</a>
使用:
<a class="back submitForm" href="form1.php">BACK</a>
答案 0 :(得分:1)
有关如何执行此操作的详细信息,请查看此帖子:Submit form using AJAX and jQuery
答案 1 :(得分:1)
#Whizkid在提交后右键单击后面的按钮不起作用, 尝试以下方法,它利用jquery onbeforeunload事件来测试表单是否已经提交;如果没有,它会显示消息,通知用户表单中未保存的数据:
$(function() {
// Set the unload message whenever any input element get changed.
$('input').change(function() {
setConfirmUnload(true);
});
// Turn off the unload message whenever a form get submitted properly.
$('form').submit(function() {
setConfirmUnload(false);
});
});
function setConfirmUnload(on) {
var message = "You have unsaved data. Are you sure to leave the page?";
window.onbeforeunload = (on) ? function() { return message; } : null;
}
答案 2 :(得分:0)
我通过将HTML中的所有必要链接更改为具有名称属性的提交按钮,并在PHP中添加一个语句来解决此问题,该语句根据用户单击的按钮重定向用户。
HTML
<input type="submit" name="whereto" value="BACK" />
<input type="submit" name="whereto" value="SUBMIT" />
PHP
// Insert Statement
if ($_POST['whereto'] == 'BACK') {
header("location: form1.php");
} elseif ($_POST['whereto'] == 'SUBMIT') {
header("location: form3.php");
}