jQuery文档准备在IE上不能正常工作

jQuery document ready not working properly on IE

本文关键字:常工作 工作 不能 文档 IE jQuery      更新时间:2023-09-26

我使用jQuery .ready函数在文本输入上添加一些ajax调用到我的注册页面的TextBox es

在Chrome, Firefox和Safari上都可以正常工作,但在Internet Explorer(我使用的是IE11)上无法工作。

这是我在$(document).ready()使用的代码:

$(document).ready(function () {
    $(reg_user).on('input', function (e) { ValidateEmailPass(reg_user); });
    $(reg_pass).on('input', function (e) { ValidateEmailPass(reg_pass); });
    $(reg_email).on('input', function (e) { ValidateEmailPass(reg_email); });
    $(reg_age).on('input', function (e) { ValidateEmailPass(reg_age); });
});

每当其中的文本发生变化时,它都会触发验证函数。虽然,我IE,它告诉我reg_user是未定义的,这会导致错误,它不会触发这些函数。

我使用的jQuery 1.11.3支持旧版本。如果你知道怎么修,请告诉我。我不知道到底是什么导致了这个问题。我认为IE的行为与$(document).ready()不同。

Replace

$(reg_user)

具有右元素选择器(ID或Class)。在DOM准备好之前,你不能创建链接(var reg_user)到DOM元素。

注:另外,IE11在input事件上也有一些问题。

这是一个很好的阅读。

Internet Explorer从版本9开始支持oninput事件。如果您需要一个事件,当这些元素的内容是在ie浏览器版本9之前修改,请使用onpropertychange事件。

因此,您可以使用change -正如注释所建议的那样,它不完全相同,但它是跨浏览器兼容的。此外,应该使用有效的选择器而不是全局变量。这是一个很糟糕的做法,我不知道它在所有浏览器上的表现。