gpt4 book ai didi

jquery - 提交按钮不会触发 IE 上的 jQuery 绑定(bind)提交事件

转载 作者:行者123 更新时间:2023-12-01 01:20:01 25 4
gpt4 key购买 nike

我的 IE 有问题(8,尚未在 7 上测试)。我的情况非常简单:我创建一个表单元素

var formNode = $('<form>');

我将一堆其他元素附加到表单(表内带有输入元素的字段集)。然后我将表单附加到 DOM,然后绑定(bind)一个提交处理程序:

formNode.bind('submit', function (ev) {
alert('submit of form!');
// do lots of stuff....
}

这适用于我的 Mac 上的 Safari(是的,我是 Mac 用户),以及 Windows 上的 Safari 和 Firefox,但当我使用 IE 8 时单击提交按钮时,永远不会调用警报。相反,浏览器尝试提交/的 GET 请求(我没有为表单设置方法或操作 - 也许这是必要的?)。

任何见解都将不胜感激,因为我正在随意进行更改以进行调试。

最佳答案

在 Internet Explorer 中使用 jQuery 监听来自表单元素的事件存在各种问题。 jQuery 论坛上有一系列评论: IE-specific issues with live ('submit') 。当然,我知道您使用的是 bind 而不是 live,但所描述的许多问题都涉及尝试使用两者。

我对您的回答进行了评论,询问您正在使用哪个版本的 jQuery。如果您还没有并且可以这样做,我会升级到最新版本。

一些代码解决方案:

将提交处理程序绑定(bind)到 body 元素的每个子元素
改编自 synertech1在前面提到的 jQuery 论坛讨论中回答。

var submitHandler = function() { ... };

$("body").children().each(function() {
$("form", this).bind("submit", submitHandler);
})

绑定(bind)到提交输入类型
我讨厌这个选项,因为表单元素是更合适的绑定(bind)元素。

 $('form > input[type*="submit"]').bind('click', function(event) {
var form = $(this).parent;
form.submit();
event.preventDefault();
});

关于jquery - 提交按钮不会触发 IE 上的 jQuery 绑定(bind)提交事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3787840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com