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.