Autor Zpráva
Peter_zv
Profil *
Zdravím,

prosím o radu, mám nasledovný skript:

startList = function() {
navRoot = document.getElementsByTagName("input");
for (i=0; i<navRoot.length; i++) {
node = navRoot[i];
if (node.value!=="") {
node.onFocus=function() {
 this.value="";
  }
  node.onBlur=function() {
  this.value=this.value.replace("", "");
   }
   }
}
 }
window.onload=startList;


mal by fungovat tak ze zoberie vsetky inputy zo stranky, tie ktore maju zadanu "value" tak pri kliknuti na ne ma text zmiznut... tu druhu funkciu som zatial neriesil, lebo nefunguje vobec ani ta prva...

za odpoved vopred diky...
Jan Tvrdík
Profil
AFAIK v JS nic jako operátor identity (===) neexistuje, takže bych zkusil nahradit !== za !=
navRoot = document.getElementsByTagName("input");
for (i=0; i<navRoot.length; i++) {
node = navRoot[i];
if (node.value != "") {
node.onFocus=function() {
 this.value="";
  }
  node.onBlur=function() {
  this.value=this.value.replace("", "");
   }
   }
}
 }
window.onload=startList;
wrestler
Profil
Jan Tvrdík
Podle mého zase operátor identity existuje, alespoň podle manuálu.
_es
Profil
Aj podľa ECMA-262 11.9.4, 11.9.5
Peter_zv
Profil *
vdaka, no skusil som vymenit ten operator ale stale nic... nikoho nic nenapada?
Chamurappi
Profil
Reaguji na Petera_zv:
Problém je ve velikosti písmen, správně je onfocus a onblur.
Textové <input>y mají mimochodem i vlastnost defaultValue, ve které je uložena výchozí hodnota, ta se ti asi bude hodit.
_es
Profil
Peter_zv
skusil som vymenit ten operator
Operátory identity a neidentity sú na tieto účely vhodnejšie. Okrem toho sú aj rýchlešie.
Použitím operátorov rovnosti a nerovnosti namiesto nich môže navyše ľahko vzniknúť ťažko odhaliteľná chyba. Ibaže by ti vyhovovali interné prevody typov, ktoré pri nich nastávajú. Napríklad platí, že (false == ""), alebo že ([] == false).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0