使用JavaScript自动提交表单

使用JavaScript自动提交表单,javascript,forms,Javascript,Forms,var auto_refresh=setInterval( 函数() { submitform(); }, 10000); 函数submitform() { 警报(“测试”); document.myForm.submit(); } 我在尝试每10秒自动提交一个表单时遇到问题,一旦登录到页面上。表单名为myFormaction=“test.php”。我收到'test'消息,但页面没有提交表单 除了在页面加载时自动加载函数之外,还有其他解决方案吗 修复:从“提交”按钮中删除(name=“subm

var auto_refresh=setInterval( 函数() { submitform(); }, 10000); 函数submitform() { 警报(“测试”); document.myForm.submit(); } 我在尝试每10秒自动提交一个表单时遇到问题,一旦登录到页面上。表单名为myForm
action=“test.php”
。我收到
'test'
消息,但页面没有提交表单

除了在页面加载时自动加载函数之外,还有其他解决方案吗


修复:从“提交”按钮中删除(
name=“submit”
),它工作正常。

您需要指定一个帧、一个目标,否则您的脚本将在第一次提交时消失

document.myForm
更改为
document.forms[“myForm”]



window.onload=function(){ var auto=setTimeout(函数(){autoRefresh();},100); 函数submitform(){ 警报(“测试”); document.forms[“myForm”].submit(); } 函数autoRefresh(){ clearTimeout(自动); auto=setTimeout(函数(){submitform();autoRefresh();},10000); } }
尝试使用
document.getElementById(“myForm”)
而不是document.myForm

<form name="myForm" id="myForm" target="_myFrame" action="test.php" method="POST">
    <p>
        <input name="test" value="test" />
    </p>
    <p>
        <input type="submit" value="Submit" />
    </p>
</form>

<script type="text/javascript">
    window.onload=function(){
        var auto = setTimeout(function(){ autoRefresh(); }, 100);

        function submitform(){
          alert('test');
          document.forms["myForm"].submit();
        }

        function autoRefresh(){
           clearTimeout(auto);
           auto = setTimeout(function(){ submitform(); autoRefresh(); }, 10000);
        }
    }
</script>

var auto_refresh=setInterval(函数(){submitform();},10000);
函数submitform()
{
警报(“测试”);
document.getElementById(“myForm”).submit();
}
试试这个

<script>
var auto_refresh = setInterval(function() { submitform(); }, 10000);

function submitform()
{
  alert('test');
  document.getElementById("myForm").submit();
}
</script>

延迟自动提交的简单解决方案

HtmlElement head = _windowManager.ActiveBrowser.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = _windowManager.ActiveBrowser.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "window.onload = function() { document.forms[0].submit(); }";
head.AppendChild(scriptEl);
strAdditionalHeader = "";
_windowManager.ActiveBrowser.Document.InvokeScript("webBrowserControl");

这个解决方案对我很有效:

<body onload="setTimeout(function() { document.frm1.submit() }, 5000)">
   <form action="https://www.google.com" name="frm1">
      <input type="hidden" name="q" value="Hello world" />
   </form>
</body>




调用函数时,什么是
document.myForm

表单上是否定义了操作?请包括相关的HTML。它是如何工作的?你在javascript控制台中看到错误了吗?修改了脚本,经过测试,它可以更好地使用
setTimeout
你需要指定一个帧,一个目标,否则你的脚本在第一次提交时就会消失!我不明白。我做错了什么?上传文件时,仍然只有“测试”弹出。表单未提交。从
submit
按钮中删除
name=“submit”
,因为
document.forms[“myForm”]。submit
将其视为一个元素在本例中表单的
id
属性不是必需的,因为表单是通过
name
属性访问的。(当然,除非您更喜欢使用
document.getElementById()
,在这种情况下,应该指定
id
属性,而不是
name
)为什么任何人都要使用此代码而不做任何解释?请在回答中描述此代码的作用。
<body onload="setTimeout(function() { document.frm1.submit() }, 5000)">
   <form action="https://www.google.com" name="frm1">
      <input type="hidden" name="q" value="Hello world" />
   </form>
</body>
<body onload="setTimeout(function() { document.myform.submit() }, 5000)">
   <form action=TripRecorder name="myform">
      <textarea id="result1"  name="res1" value="str1" cols="20" rows="1" ></textarea> <br> <br/>
      <textarea id="result2" name="res2" value="str2" cols="20" rows="1" ></textarea>
   </form>
</body>