3

在 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>  
4

2 回答 2

1

从这个答案它告诉Firefox不接受innerTextinnerHTML设置一个值,而是需要textContent设置一个值。因此,如果浏览器是FirefoxtextContent ,请使用设置您的值

演示

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用于键presshold事件验证。

演示

要识别不同的浏览器,您可以使用此答案中的以下代码

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 回答
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 回答