如何提交表单没有提交按钮

How to submit form without submit button

本文关键字:提交 按钮 表单 何提交      更新时间:2023-09-26

我试图提交表单没有提交按钮。我使用以下代码提交: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>

表单在每次加载javascript时提交它自己,也就是每次加载页面时。表单的默认行为是提交到您当前所在的位置,如果没有定义,您将不断地将表单提交到拥有该表单的页面,然后再次提交该表单。

如果你希望这个提交只发生一次,例如,当访问者被(重新)定向到这个页面时,你应该使用表单的action属性提交到另一个页面。

如果你想在用户请求时提交,把你的提交包装在一个函数中,这个函数由按钮上的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;
?>

当表单提交并且数字值存在时,它显示一个没有脚本和表单的页面。

<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>