除了'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>

08-15 16:35
查看更多