3

jquery フォーム検証では、キーアップは 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>  
4

2 に答える 2

1

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;  
}
于 2015-08-10T09:57:34.177 に答える
1

この回答から、Firefoxは値を取得innerTextまたは設定するのではなく、値を設定するのinnerHTMLにかかることがわかりtextContentます。textContentブラウザがFirefoxの場合は、値を設定するために使用します

デモ

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の代わり にコメントで提案したように。onkeyuppresshold

デモ

さまざまなブラウザーを識別するには、この回答の以下のコードを使用できます

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;
}
于 2015-08-10T09:53:14.383 に答える