jQuery文档准备好在IE上无法正常工作

时间:2015-05-17 19:22:43

标签: javascript jquery internet-explorer

我正在使用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()行事。

2 个答案:

答案 0 :(得分:0)

替换

$(reg_user)

使用右元素选择器(ID或Class)。在DOM准备好之前,您无法为DOM元素创建链接(var reg_user

P.S。 IE11也存在input事件的一些问题。

答案 1 :(得分:0)

这是good read

  

从版本9开始,Internet Explorer支持oninput事件   你需要一个在这些元素的内容出现时触发的事件   在版本9之前的Internet Explorer中修改,使用   onpropertychange事件。

相反,您可以使用change - 正如评论所暗示的那样并不完全相同,但它是跨浏览器兼容的。此外,您应该使用有效的选择器而不是全局变量。这只是不好的做法,我不知道这在所有浏览器上的表现如何。