如何提交表格而不提交按钮

时间:2015-09-24 14:28:01

标签: javascript forms

我正在尝试提交没有提交按钮的表单。我使用此代码提交: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>

2 个答案:

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