【问题标题】:submit form automatically only once仅自动提交一次表单
【发布时间】:2014-04-11 07:17:34
【问题描述】:

我制作了一个表单,我需要在打开页面时自动提交。 我已经尝试过这个 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>

【问题讨论】:

  • 使用cookies存储一个值,下次检查
  • 发送表单后,U在加载过程中再次发送...

标签: javascript php forms


【解决方案1】:

您可以检查表单之前是否使用 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
    }
?>

【讨论】:

  • 第一次加载页面时 $_POST['main'] 没有设置,所以它会自行提交表单,重新加载页面,但随后 $_POST['main'] 将被设置,所以它不会像另一个一样永远循环答案将,这就是问题所在。使用 onload 处理程序对此没有任何影响。
【解决方案2】:

尝试调用 onload 文档:

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

由于页面加载只在页面完全加载时调用一次,所以它会调用一次。直到您再次通过代码重新加载页面或使用浏览器刷新。

【讨论】:

    【解决方案3】:

    下面是自动提交表单的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>
    

    【讨论】:

      【解决方案4】:

      使用这个:

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

      【讨论】:

        【解决方案5】:

        你可以试试onload event in body tag..

        点赞&lt;body onload="submitForm();"&gt;

        和你的功能一样

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-21
          • 1970-01-01
          • 2015-09-24
          • 1970-01-01
          相关资源
          最近更新 更多