我正在尝试提交没有提交按钮的表单。我使用此代码提交:document.forms ['form_id']。submit();但是这段代码一遍又一遍地提交。我想提交一次
<form method="POST" id="form_id">
<input type="hidden" id="lan" value="" name="number">
</form>
<script type="text/javascript">
document.forms['form_id'].submit();
</script>
答案 0 :(得分:0)
每次加载javascript时,表单都会自行提交,这是每次加载页面时。表单的默认行为是提交到您当前所在的位置,如果未定义,您将不断将表单提交到包含该表单的页面并再次提交表单。
如果您希望此提交只发生一次,例如,当访问者(重新)定向到此页面时,您应该使用表单的操作属性提交给另一个访问者。
如果您希望在用户请求时发生提交,请将您的提交包装在按钮上的onclick事件或任何其他事件调用的函数中。
<script>
function submittheform(){
document.forms['form_id'].submit();
}
</script>
<form method="POST" id="form_id" action="someHandlerUrl">
<input type="hidden" id="lan" value="" name="number"/>
<input type="button" onclick="submittheform()" value="submit the form"/>
</form>
您可以在构建页面的PHP中使用此脚本;
<?php
if(isset($_POST['number'])){
$number = $_POST['number'];
$out = '<h1>The form was submitted</h1>';
}else{
$out = '
<h1>The form needs to be submitted</h1>
<form method="POST" id="form_id">
<input type="hidden" id="lan" value="" name="number">
</form>
<script type="text/javascript">
document.forms[\'form_id\'].submit();
</script>
';
}
echo $out;
?>
提交表单并且数字值存在时, 它显示没有脚本和表单的页面。
答案 1 :(得分:0)
<form method="POST" action="" id="mailform">
<input type="email" name="mail" placeholder="EMAIL" id="mail">
<div id="sub" onclick="mailsubmit()">Click Me to Submit</div>
</form>
<script type="text/javascript">
function mailsubmit(){
document.getElementById("mailform").submit();
var mailid = document.getElementById("mail").value;
return mailid?alert(mailid):alert("You did not submit your Email");
}
</script>