Eli toiminto, joka on täysin toimivaksi todettu IE:llä ei toimikaan Firefoxissa (.focus()). Tässä koodinpätkää, jos joku viisaampi osais neuvoa, missä mättää. Vai onko kyseessä Firefoxin bugi?
HTML:
<input type="text" name="puh" size=4 maxlength=4 onBlur="javascript:checkPuh()"><span id="virhe"></span>
Javascript:
function checkPuh(){
var puh = document.fo.weight.value;
var virhe = "Puhelinnumeron täytyy koostua pelkistä numeroista!";
paikka = document.getElementById("virhe");
if(isNaN(puh) == true){
virheilm = document.createTextNode(virhe);
paikka.appendChild(virheilm);
document.lomake.puh.focus();
}else{
while(paikka.hasChildNodes()){
paikka.removeChild(paikka.firstChild);
}
}
}Toimii siis 100% IE:llä, mut Firefoxilla kursori ei siirry takaisin puhelinnumero-kenttään, kun virhe havaitaan.
onblur="checkPuh()" (ei tarvitse javascript:-tekstiä edessä; jos sivu yrittää olla XHTML:ää, täytyy onblur olla pienellä).
document.fo.weight.value (tämän tilalla todennäköisesti pitäisi käyttää getElementById:tä ja antaa weightille id-arvo).
Kannattaa myös käyttää Työkalut > JavaScript-konsolia (Tools > JavaScript console). Firefox osaa kertoa, miksi jokin asia ei toimi.
Firefoxi ei ilmoittanut mitään virhettä, mutta Mozillan omalta forumilta vastattiin että korvaamalla rivi
document.lomake.puh.focus();
Rivillä:
setTimeout('document.lomake.puh.focus()', 1)ongelma ratkeaa ja niinhän se tekikin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.