我正在尝试使用javascript中的submit-function提交表单。我没有使用提交按钮的原因是我想询问用户是否真的想提交表单。这是代码:
<?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代码和模具功能时,提交按钮就可以了,并且“REAL Submit Works”会显示出来,这很奇怪,因为按钮代码是第一个。
<?php
if(isset($submit1))
die("Submit successfull!");
if(isset($_POST['realsubmitbutton']))
die("REal Submit Works");
?>
我还尝试将onClick更改为仅包含javascript提交功能。像这样:onClick =“this.form.submit();”。但这也行不通。所以我的问题是,代码有什么问题,为什么它不起作用?
按钮无法通过POST发送它的值吗?
答案 0 :(得分:1)
问题是您是通过onclick
处理程序提交表单的。这意味着,按钮不会作为提交的一部分按下。
您可以从该功能返回true
以获得所需的行为。
但实际上,这是一个坏主意。我们中的许多人更喜欢简单地在表单字段上输入,而不是单击提交。在表单处理程序上,只需检查!empty($_POST)
即可。将“您确定”功能放在表单的onsubmit
操作中。
答案 1 :(得分:0)
直接在表单上使用“onSubmit”事件而不是按钮单击。 如果您实际上不想提交,则返回“false”。
答案 2 :(得分:0)
修改你的函数,使它获得对表单的引用并调用它的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>
答案 3 :(得分:0)
返回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>
答案 4 :(得分:0)
我已经阅读了所有答案并完成了代码。它现在可以同时单击按钮或按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>
感谢所有答案,并希望这对某人有所帮助。