当前位置: 首页 > 面试题库 >

出现错误“由于未连接表单而取消了表单提交”

叶翰林
2023-03-14
问题内容

我有一个使用JQuery 1.7的旧网站,该网站在两天前都可以正常工作。突然我的某些按钮不再起作用,单击它们后,我在控制台中收到以下警告:

由于未连接表单,因此取消了表单提交

点击后的代码是这样的:

 this.handleExcelExporter = function(href, cols) {
   var form = $('<form method="post"><input type="submit" /><input type="hidden" name="layout" /></form>').attr('action', href);
   $('input[name="layout"]', form).val(JSON.stringify(cols));
   $('input[type="submit"]', form).click();
 }

Chrome 56似乎不再支持这种代码。是不是 如果是,我的问题是:

  1. 为什么这突然发生了?没有任何弃用警告?
  2. 此代码的解决方法是什么?
  3. 有没有一种方法可以强制chrome(或其他浏览器)像以前一样工作而不更改任何代码?

PS 在最新的firefox版本中也不起作用(没有任何消息)。另外,它在IE 11.0和Edge中也不起作用!(都没有任何消息)


问题答案:

快速解答:将表格附加到正文中。

document.body.appendChild(form);

或者,如果您如上所述使用jQuery: $(document.body).append(form);

详细信息:根据HTML标准,如果表单未与浏览上下文(文档)相关联,则表单提交将被中止。

在Chrome 56中,应用了此规范。

PS关于您的问题#1。在我看来,与ajax不同,表单提交会导致页面立即移动。因此,显示“已过时的警告消息”几乎是不可能的。 我也认为,功能更改列表中未包含此重大更改是不可接受的。



 类似资料:
  • 我试图通过一个表单向数据库添加一个表。正在创建的实体称为相册,它有2个字段,艺术家和流派。这两者都是独立的实体。这两个字段用@ManyToOne进行了注释 当我提交表单时,这是我得到的错误: 以下代码是我的控制器的一部分: 下面的代码是百里香模板的一部分: 是什么导致了这个错误?

  • 我正在将Spring jsp应用程序迁移到Thymeleaf,但在显示表单错误时遇到问题。 当我尝试使用以下方法显示错误时: 它不会显示任何错误。 我尝试了http://www.thymeleaf.org/doc/html/thymeleaf-spring3.html#validation-and-error-messages#validation-and-error-messages上的各种替代

  • 我正在使用tinyMCE-4.0。16以cakePHP2的形式。4.当我单击submit时,表单不提交,并在控制台中出现以下错误 具有name='data[Research][description]'的无效窗体控件不可聚焦。 我在文本区使用HTML5验证“必需”。

  • 我在google cloud中创建了一个google cloud函数,它将连接到我在google cloud中创建的postgresql实例。 我正在使用'pg'节点模块。 我已经为此创建了一个私有IP。 我收到以下错误: 错误:由于在timeout.ConnectionTimeouthAndle.SetTimeout(/workspace/node_modules/pg/lib/client.j

  • 提交表单时出错 当请求的凭据模式为“包括”时,响应中的“访问控制允许来源”标头的值不得为通配符“*”。起源'https://local.oto.com因此,不允许访问。

  • 我有一个谷歌表格电子表格,其中有几张名为:“表格回复1”、“表格回复2”、“表格回复3”和“表格1”。我写了一个代码,删除除“Sheet1”以外的所有工作表: 当我运行函数时,它给我一个错误: 不能删除具有链接表单的工作表。请先解除关联。 如何取消表单与工作表的链接?请参阅下面函数的代码。 谢谢。