В 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
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
проверка событий.
Для идентификации разных браузеров вы можете использовать приведенный ниже код из этого ответа
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;
}