Автоматическая отправка формы с использованием JavaScript
<form name="myForm" id="myForm" action="test.php" method="POST">
<p>
<input name="test" value="test" />
</p>
<p>
<input type="submit" name="submit" value="Submit" />
</p>
</form>
<script>
var auto_refresh = setInterval(
function()
{
submitform();
}, 10000);
function submitform()
{
alert('test');
document.myForm.submit();
}
</script>
У меня возникли проблемы с автоматической отправкой формы каждые 10 секунд после приземления на странице. Имя формы - myForm action="test.php"
. Я получаю сообщение 'test'
, но страница не отправляет форму.
Любые решения, помимо автозагрузки функции при загрузке страницы?
ФИКСИРОВАН: Удалено (name="submit"
) из кнопки отправки, и оно работает плавно.
Ответы
Ответ 1
Вам нужно указать фрейм, цель, иначе ваш script исчезнет при первом отправке!
Измените document.myForm
на document.forms["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>
Ответ 2
Попробуйте использовать document.getElementById("myForm")
вместо document.myForm.
<script>
var auto_refresh = setInterval(function() { submitform(); }, 10000);
function submitform()
{
alert('test');
document.getElementById("myForm").submit();
}
</script>
Ответ 3
Простое решение для отложенной автоматической отправки:
<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>
Ответ 4
Это решение работало для меня:
<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>
Ответ 5
Попробуйте это,
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");