我正在使用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()
行事。
答案 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
- 正如评论所暗示的那样并不完全相同,但它是跨浏览器兼容的。此外,您应该使用有效的选择器而不是全局变量。这只是不好的做法,我不知道这在所有浏览器上的表现如何。