【问题标题】:How to autosubmit a form in javascript?如何在javascript中自动提交表单?
【发布时间】:2011-09-15 12:12:28
【问题描述】:

我有一个带有输入文本字段的表单,它每隔几秒钟导入一次数据并将其显示在表单字段中,让我们说:

<input name="code" id="code" type="text" size="64" maxlength="128" />

还有一个提交按钮,我的表单的表单名为 form1。 我希望在表单字段中的数据更改后立即单击提交按钮。 我确实尝试过以下操作。在标题中,我确实添加了以下 javascript:

<SCRIPT LANGUAGE="javascript">
function send_data()
{
document.form1.submit();
}
</SCRIPT>

在表格上:

<input name="code" id="code" type="text" size="64" maxlength="128" onchange="send_data();" />

但它没有工作..

有什么帮助吗?

谢谢

【问题讨论】:

  • 能否显示&lt;form&gt; 标签。它需要具有action 属性才能使.submit() 起作用。
  • 我已经有一个动作,但没有 submit() ,这里
    .. 这有什么好转的吗?
  • 警告:避免将提交按钮(或任何其他表单元素)命名为 name="submit",否则 submit() 在某些浏览器中将失败。称它为 name="btnSubmit" 之类的,除了“提交”之外的任何东西。

标签: javascript html forms onchange


【解决方案1】:

这样的事情会起作用:

<form action="#">
    <input type="" id="input" />
    <button type="submit"></button:>
</form>

<script>
function send_data() {
    document.forms[0].submit();
}

window.onload = function(){
    var input = document.getElementById('input');
    input.onchange = send_data;
}
</script>

但我要补充一些警告:

  1. 我假设页面上只有一个表单。您会更安全地为您的表单分配 ID 并使用 getElementById 并引用它而不是 document.forms[x]
  2. 只有在您失去对输入的关注后才会发生更改事件,这可能是您想要的?只需确保它是预期的行为
  3. 在不知道为什么需要这样做的情况下,我注意到这可能会让用户非常恼火,因为提交会触发新的页面加载。您最好通过 ajax 进行提交,以免干扰用户的浏览。如果你这样做,我强烈推荐一个 JS 库来处理这个问题。

【讨论】:

  • 另外,一些编码风格注意事项:使用不显眼的 JS 而不是内联;使用 html5 样式的脚本标签(小写,无语言属性)。
  • 我正在开发一个小型 web 应用程序,为了在不需要用户交互的情况下自动化该过程,我需要在代码更改后立即提交此表单。这仍然是开始,因为我需要将信息提交到 xml 文件。我希望这能澄清我在做什么以及我为什么需要这个。
  • 我认为从 UI 角度来看,将提交设置为 Ajax 会更好地为您服务,然后提醒用户(可能通过模式窗口)它已成功保存或出现错误.我建议让你的生活更轻松,并使用一个库(jQuery、YUI、Dojo 等),它可以简化 x 浏览器问题、ajax 处理等。
  • 谢谢,我会看看 Ajax,但我想我会先在这里问,因为最终 ajax 来自 javascript。再次感谢
  • 欢迎您。我想你在开发这个时有理由问更多关于 SO 的问题 :-)
猜你喜欢
  • 2012-02-18
  • 1970-01-01
  • 2012-09-04
  • 1970-01-01
  • 2013-06-02
  • 2014-10-23
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多