除了'blur'以外,其他所有东西都可以正常工作,由于某些原因,我只会在未输入任何字符时得到反馈,但是一旦我输入的用户名小于5,则附加到'blur'的checkUsername函数将不会发送任何信息反馈(我的开发人员工具中也没有错误消息)。
function checkUsername(){
var username=el.value;
if(username<5){
elMsg.className='warning';
elMsg.textContent='Not long enough...';
}else{
elMsg.textContent='';
}
}
function tipUsername(){
elMsg.className='tip';
elMsg.innerHTML='Username must be at least 5 characters';
}
var el=document.getElementById('username');
var elMsg=document.getElementById('feedback');
el.addEventListener('focus',tipUsername,false);
el.addEventListener('blur',checkUsername,false);
最佳答案
要检查字符串的长度,请使用"someString".length
:
/* ... */
if(username.length < 5){
/* ... */
演示版
function checkUsername(){
var username=el.value;
if(username.length < 5){
elMsg.className='warning';
elMsg.textContent='Not long enough...';
}else{
elMsg.textContent='';
}
}
function tipUsername(){
elMsg.className='tip';
elMsg.innerHTML='Username must be at least 5 characters';
}
var el=document.getElementById('username');
var elMsg=document.getElementById('feedback');
el.addEventListener('focus',tipUsername,false);
el.addEventListener('blur',checkUsername,false);
<input type="text" id="username" placeholder="Enter a username..." />
<div id="feedback"></div>