如何在 IE-8 及更早版本中使用事件侦听器

How do I use event listeners in IE-8 and earlier

本文关键字:事件 侦听器 版本 IE-8      更新时间:2023-09-26

我想要一个函数来检查用户是否在表单中输入了足够的字符。我的代码在 chrome 中有效,但在 IE 中无效。

var elUsername = document.getElementById('username');  
var elMsg      = document.getElementById('feedback');   
function checkUsername(minLength) {                     
  if (elUsername.value.length < minLength) {           
    elMsg.innerHTML = 'Username must be ' + minLength + ' characters or more';
  } else {                                             
    elMsg.innerHTML = '';                            
  }
}
elUsername.addEventListener('blur', function() {      
  checkUsername(5);                                     
}, false);

IE5-8具有不同的事件模型,不支持addEventListener(),但您可以提供回退代码。

var elUsername = document.getElementById('username'); 
var elMsg = document.getElementById('feedback');       
function checkUsername(minLength) {                  
  if (elUsername.value.length < minLength) {           
    elMsg.innerHTML = 'Username must be ' + minLength + ' characters or more';
  } else {                                           
    elMsg.innerHTML = '';                              
  }
}
if (elUsername.addEventListener) {             
  elUsername.addEventListener('blur', function(){
    checkUsername(5);                            
  }, false);                                     
} else {                                         
  elUsername.attachEvent('onblur', function(){   
    checkUsername(5);                            
  });
}