【问题标题】:Why doesn't my form submit automatically?为什么我的表单没有自动提交?
【发布时间】:2010-11-11 05:38:32
【问题描述】:

我看不出有什么问题,submit() 不再起作用了吗?

<html>
<head>
    <title>This is the title</title>
    <script type = "text/javascript">

        function onLoad() {
            document.getElementById("input1").value="text1";
            document.getElementById("input2").value="text2";
            document.getElementById('form').submit();
        }

    </script>
</head>
<body onload="onLoad();">
<form method="post" name="form" id="form" action="test.txt">
    <label for="input1">Input1</label> <input id="input1" name="input1" type="text"/>
    <label for="input2">Input2</label> <input id="input2" name="input2" type="text"/>
    <input name="submit" id="submit" value="submit" type="submit"/>
</form>
</body>
</html>

【问题讨论】:

  • 检查您的 JavaScript 控制台是否有错误
  • 使用表单[0] 代替表单名称不是一个好主意。
  • @MK - 我不同意,一个符合 XHTML 的页面应该只有 1 个表单(除非脚本位于外部 JS 文件中,但它不是)。
  • @RPM 没有人谈论 XHTML,在我使用的所有浏览器中,document.forms 是一个 DOM 元素数组,没有不是 DOM 的“表单”对象目的。因此,您的评论是错误的且具有误导性 - 表单对象 is 是一个 DOM 对象 - submit 方法仍然会通过调用提交按钮提交而被破坏。我已经在 chrome 和 FF 上测试了您的解决方案,它产生与 OP 代码相同的错误
  • @tobyodavies - 纠正得很好。我删除了我的评论

标签: javascript forms submit


【解决方案1】:

您的问题是按钮被命名为提交和 hs id 提交。改变它,它就可以工作。 您使用提交按钮元素覆盖了提交功能。

【讨论】:

  • 我刚刚发现了正确的答案,这正是你所说的,我不得不用 type="submit" 去掉输入标签中的 name 和 id 属性
【解决方案2】:

如果您没有 nameed 提交按钮 submit 这会破坏方法定义,这将起作用

【讨论】:

  • 谁能真正发布正确的代码示例,答案非常混乱。
  • &lt;input type="submit" name="submit" id="submit /&gt; 更改为 &lt;input type="submit" name="anything-other-than-submit" id="anything-other-than-submit" /&gt; - 名称和 ID 为“提交:导致输入 DOM 元素覆盖表单 DOM 元素的提交方法,从而无法以编程方式提交。
【解决方案3】:

试试这个..

<html>
<head>
    <title>This is the title</title>
    <script type = "text/javascript">
        function Test() {
            document.getElementById("input1").value="NewValue1";
            document.getElementById("input2").value="NewValue2";
            document.getElementById('form').submit();
        }

    </script>
</head>
<body onload="Test();">
<form method="post" name="form" id="form" action="new.html">
    <label for="input1">Input1</label> <input id="input1" name="input1" type="text"/>
    <label for="input2">Input2</label> <input id="input2" name="input2" type="text"/>
    <input name="submit" id="submit" value="submit" type="submit"/>
</form>
</body>
</html>

【讨论】:

    猜你喜欢
    • 2014-04-08
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多