>我正在尝试使用javascript中的提交函数来提交表单。我没有使用提交按钮的原因是我想询问用户是否真的要提交表单。这是代码:
<?php
if(isset($_POST['submit1']))
die("Submit successfull!");
?>
<!--Javascript submit question.-->
<script type="text/javascript">
function question_submit() {
if(confirm('Are you sure you want to submit?')) {
return true;
}
else {
alert('You have not submitted this form');
return false;
}
}
</script>
<!--The form-->
<form action='test.php' method='POST'>
<input type='button' name='submit1' value='Submit' onClick="if(question_submit()) { this.form.submit(); }" />
</form>
结果:弹出窗口效果很好,它只是不想提交表单,因此"提交成功!
当我向页面添加真正的提交按钮时,该消息甚至没有显示。就像 POST 数据不起作用一样。但是当我添加一个 PHP 代码和 die-function för 提交按钮时,事情就会起作用,并且会出现"REal 提交作品",这很奇怪,因为按钮代码是第一个。
<?php
if(isset($submit1))
die("Submit successfull!");
if(isset($_POST['realsubmitbutton']))
die("REal Submit Works");
?>
我还尝试将onClick更改为仅包含javascript提交功能。像这样: onClick="this.form.submit();".但这也行不通。所以我的问题是,代码有什么问题,为什么它不起作用?
按钮不能通过开机自检发送它的价值吗?
问题是您是通过onclick
处理程序提交表单的。 这意味着,该按钮不会作为提交的一部分按下。
您可以从该函数返回true
以获取所需的行为。
真的,这是一个坏主意。 我们中的许多人更喜欢简单地在表单字段上按回车键,而不是单击提交。 在您的表单处理程序上,只需选中!empty($_POST)
即可。 将您的"您确定吗"功能作为表单的onsubmit
操作。
直接在表单上使用"onSubmit"事件,而不是单击按钮。然后,如果您实际上不想提交,则返回"false"。
修改你的函数,让它得到对表单的引用并调用它的 submit() 方法:
function question_submit() {
if(confirm('Are you sure you want to submit?')) {
document.getElementById("myForm").submit();
return true;
} else {
alert('You have not submitted this form');
return false;
}
}
此外,更新表单 HTML,使表单具有 id,并修改 HTML 按钮,使其调用 question_submit() 函数。将实际的业务逻辑留给函数以保持 HTML 干净。最后,确保您的属性全部为小写。这应该不会影响功能,但使用小写属性名称更简洁:
<form action='test.php' method='POST' id='myForm'>
...
<input type='button' name='submit1' value='Submit' onclick="question_submit();" />
</form>
true
或false
仅在输入类型为提交时有效。所以,你应该改变
<input type='button' name='submit1' value='Submit' onClick="if(question_submit()) { this.form.submit(); }" />
为
<input type='submit' name='submit1' value='Submit' onClick="if(question_submit()) { this.form.submit(); }" />
使用您的函数,它只会在用户接受时提交。或者,也许您可以使用
<form action='test.php' method='POST' onClick="return question_submit()">
<input type='submit' name='submit1' value='Submit' />
</form>
我已经阅读了您的所有答案并完成了代码。现在,单击按钮或按 Enter 键都可以使用它。无论哪种方式,javascript都可以正确运行,并且表单被提交。这是代码:
<?php
if(!empty($_POST['justaname']))
die("Submit successfull!");
?>
<!--Javascript submit question.-->
<script type="text/javascript">
function question_submit() {
if(confirm('Are you sure you want to submit?')) {
document.getElementById("myform").submit();
}
else {
alert('You have not submitted this form');
}
}
</script>
<!--The form-->
<form action='test.php' method='POST' id="myform" onSubmit="event.preventDefault(); question_submit();">
<input type="text" name='justaname' />
<input type='button' name='submit1' value='Submit' onClick="question_submit()" />
</form>
感谢您的所有答案,希望这对某人有所帮助。