仅自动提交表单一次

时间:2014-04-11 07:17:34

标签: javascript php forms

我已经制作了一个表格,我需要在打开页面时自动提交。 我已经尝试过这个javascript代码,但它创造了一个循环,其中表单无限制地提交时间。我需要在打开页面时只提交一次表单的代码。请给我一个建议。

<form id="form" action="form.php" method="POST" >
  <select id="main" name="main">
    <option value="1" <?php if (@$_POST['main']=='1') {echo "selected='selected'"; } ?>>One</option>
    <option value="2" <?php if (@$_POST['main']=='2') {echo "selected='selected'"; } ?>>Two</option>
  </select>
</form>

<script>
  document.getElementById("form").submit();
</script>

5 个答案:

答案 0 :(得分:1)

尝试调用onload of document:

function submitForm()
{
   document.getElementById("form").submit();
}
window.onload=submitForm;

由于页面onload仅在页面完全加载时调用一次,因此它将调用一次。直到您通过代码或使用刷新浏览器再次重新加载页面。

答案 1 :(得分:1)

以下是自动提交表单的java脚本 你必须从http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

导入jquery.min.js

读取类错误的td值

$("td.error").each(function () {
    // 'this' is now the raw td DOM element
    var txt = $(this).html();
    n=txt.length;   
});
if(n!=0)
    {
        alert(n)
    }
    if(n==0)
    {

        document.forms["login"].submit();
    }

我的html文件包含类似

的代码
<td colspan="2" class="error"><br/><i18n:text><xsl:value-of select="$message"/></i18n:text></td>

答案 2 :(得分:1)

使用它:

<body onload =  "if (location.search.length < 1){ document.getElementById('form').submit()}">

答案 3 :(得分:0)

您可以检查表单是否先前使用POST超全局提交

<form id="form" action="form.php" method="POST" >
  <select id="main" name="main">
    <option value="1" <?php if (@$_POST['main']=='1') {echo "selected='selected'"; } ?>>One</option>
    <option value="2" <?php if (@$_POST['main']=='2') {echo "selected='selected'"; } ?>>Two</option>
  </select>
</form>

<?php
    if ( ! isset($_POST['main']) ) { // not submitted yet
?>
   <script>
      document.getElementById("form").submit();
   </script>
<?php
    }
?>

答案 4 :(得分:0)

您可以尝试onload event in body tag ..

喜欢<body onload="submitForm();">

和你的功能一样

<script>
function submitForm()
{
   document.getElementById("form").submit();
}
</script>