В Java Script validation Использование keyup для проверки не работает в Mozilla

В проверке формы jquery keyup не работает Mozilla, но работает нормально в Chrome.

вот код Javascript

function validate() {  
    var msg;  
    if(document.myForm.userPass.value.length>5)
        msg="good";  
    else
        msg="poor";  
    document.getElementById("mylocation").innerText=msg;  
}  

вот HTML-код

<form name="myForm"> 
<input type="password" value="" name="userPass" onkeyup="validate()">   
Strength:<span id="mylocation">no strength</span>  
</form>  

2 ответа

Решение

Из этого ответа он говорит, что Firefox не берет innerText или же innerHTML чтобы установить значение, скорее требуется textContent установить значение. Так что используйте textContent установить ваше значение, если браузер Firefox

DEMO

function validate() {  
    var msg;  
    if(document.myForm.userPass.value.length>5){  
        msg="good";  
    }  
    else{  
        msg="poor";  
    }  
    var f=navigator.userAgent.search("Firefox"); //check if browser if FF
    if(f>-1)
        document.getElementById("mylocation").textContent=msg //if yes use this
    else
        document.getElementById("mylocation").innerText=msg //else normal approach
}  

Примечание:- Как я предложил в комментарии, используйте onkeypress вместо onkeyup для ключа press а также hold проверка событий.

DEMO

Для идентификации разных браузеров вы можете использовать приведенный ниже код из этого ответа

function checkBrowser(){
    c=navigator.userAgent.search("Chrome");
    f=navigator.userAgent.search("Firefox");
    m8=navigator.userAgent.search("MSIE 8.0");
    m9=navigator.userAgent.search("MSIE 9.0");
    if (c>-1){
        brwsr = "Chrome";
    }
    else if(f>-1){
        brwsr = "Firefox";
    }else if (m9>-1){
        brwsr ="MSIE 9.0";
    }else if (m8>-1){
        brwsr ="MSIE 8.0";
    }
    return brwsr;
}

Попробуйте использовать jquery, он будет работать в каждом браузере

function validate() {  
console.log("validation start");
    var msg;  
    if($("input[name='userPass']").val().length >5)
        console.log("good");//msg="good";  
    else
       console.log("poor");// msg="poor";  
    document.getElementById("mylocation").innerText=msg;  
}
Другие вопросы по тегам