Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: JavaScript: Javascript: focus() ei toimi Firefoxissa?

slitzu [02.08.2006 15:00:18]

#

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.

Merri [02.08.2006 19:38:47]

#

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.

slitzu [03.08.2006 08:43:34]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta