【发布时间】:2017-02-02 04:01:06
【问题描述】:
我有一个用 jQuery (3.1.0) 编写的 js 文件,只有一行纯 javascript。
例如:
$(window).on('load',function(){
var email = $('#email');
function setMessage(str){
document.getElementById('email').setCustomValidity(str);
};
email.bind('keyup',function(){
if(email.val()==''){
setMessage('Box is Empty');
}
});
});
当它是这样的时候它工作得很好。
下一步是缩小 js 文件,这就是问题开始的时候,控制台一直在尖叫Uncaught TypeError: Cannot read property 'setCustomValidity' of null - jquery-3.1.0.min.js。
我使用的来源:
Make sure semi-colon - 已选中
【问题讨论】:
-
jquery 是 javascript - 所以 .. 你有 11 行 javascript
-
听起来很奇怪...你能显示相应的缩小代码,以及一个实时的minimal reproducible example 吗?
-
@JaromandaX 不,这是我所写内容的示例和较短版本。
-
确保当代码运行时文档中确实有一个id为
email的元素可以访问,我猜没有。document.getElementById如果没有找到元素,则返回null,因此,如果它没有找到 id 为email的元素,则您正在尝试访问null的setCustomValidity方法,但没有存在,因此有关无法读取null的setCustomValidity属性的错误消息。 -
如果文档中没有
#email,则绑定到它的keyup事件不会触发,因此也不会调用setMessage;除非它的id自绑定后已更改... cc @UselessCode
标签: javascript jquery minify