【问题标题】:document.getElementById("tweetform").submit is not a function?document.getElementById("tweetform").submit 不是函数?
【发布时间】:2009-07-08 22:38:38
【问题描述】:

我正在使用 Firefox,并且我一直在阅读一些论坛,声称这在 Firefox 中不起作用,但过去几天它一直在为我工作,但已经停止工作,我不知道为什么。

我使用 IFrame 发出 AXAX POST 请求。当我得到回复时,我使用这个:

function startLoad(){
    $.get("update.php", function(data){
            if(data==''){
                startLoad();
            }
            else{
                document.getElementById("tweetform").submit();
            }
    });
}

但是,从萤火虫,我得到这个:

document.getElementById("tweetform").submit is not a function
[Break on this error] document.getElementById("tweetform").submit();

我知道提交存在,但发生了什么?

【问题讨论】:

  • 元素 tweetform 是否存在?是表格吗?
  • 能否提醒(document.getElementById("tweetform")) 并检查它是否返回表单?
  • 是的,tweetform 存在并且警报返回:[object HTMLFormElement]
  • alert(document.getElementById("tweetform").submit) 显示什么?
  • 为什么在使用 jQuery 时使用“document.getElementById”?为什么不直接使用“$('#tweetform')”?

标签: javascript


【解决方案1】:

我的猜测可能是您的表单中有一个名为“submit”的元素(可能是<button><input type="submit">,并且“.submit”正在检索对该元素,而不是成员函数“submit()”。如果是这种情况,请尝试将该元素重命名为其他名称(例如,“submit_button”)。

【讨论】:

  • 好电话。我以前也被这个咬过。
  • 我们这里有一个天才! :) 你是对的,我有一个名称属性为“提交”的按钮!但是,如果 getElementById 不引用该元素,它有什么用! :P
  • 确实如此。您的问题是 myForm.submit 是另一个元素,而不是提交表单的函数。
  • 我喜欢 stackoverflow。您无法在文档中找到此答案。只是经验可以给你
  • 谢谢!拔头发时差点秃顶。
【解决方案2】:

Jason Musgrove很好地解释了这个问题。

您可以使用 HTMLFormElement 的原生 submit 方法来解决问题:

HTMLFormElement.prototype.submit.call($('#tweetform')[0]);

【讨论】:

    【解决方案3】:

    实际上,将您的 重命名为其他名称就足够了。

    【讨论】:

      【解决方案4】:

      我猜你正在使用 jQuery。

      试试这个。

      $("#tweetform").submit();
      

      【讨论】:

      • 这与 document.getElementById("tweetform") 相同,因此如果失败,运行 jQuery 等效项不会产生影响。
      • 好吧.. 使用我推荐的语法不会发生这种人的错误。
      • 我不相信——但我会测试以确保——我是对的。它不会解决它。
      • -1。另外,不要将 jQuery.submit() 与表单验证一起使用,比如在此处执行 $("tweetform_button").click(function(){...//code; $("tweetform").submit() });你会得到一个无限循环
      【解决方案5】:

      改用 document.forms['tweetform'].submit()

      【讨论】:

      • 以不同的方式访问 HTMLFormElement 对象不会让 submit 方法神奇地开始工作。
      猜你喜欢
      • 2015-12-08
      • 2018-06-29
      • 2011-09-25
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多