Autor | Zpráva | ||
---|---|---|---|
marek187 Profil |
#1 · Zasláno: 24. 2. 2014, 23:45:00
Vyvolávam funkciu týmto spôsobom a všetko funguje ako má...
JS: function capitaliseFirstLetter(field) { field.value = field.value.substr(0,1).toUpperCase() + field.value.substr(1).toLowerCase(); } HTML: onblur='capitaliseFirstLetter(this);' ... ak to však upravím následovne, už to nefunguje... JS: function capitaliseFirstLetter() { this.value = this.value.substr(0,1).toUpperCase() + this.value.substr(1).toLowerCase(); } HTML: onblur='capitaliseFirstLetter();' ... vie mi niekto vysvetliť prečo? |
||
juriad Profil |
#2 · Zasláno: 24. 2. 2014, 23:49:05
Protože this != field.
http://kod.djpw.cz/hbcb |
||
marek187 Profil |
juriad:
Inak povedané, tú funkciu by som musel vyvolať ešte ďalšou funkciou cez window.onload ?
|
||
juriad Profil |
Je to z toho důvodu, že volání
capitaliseFirstLetter() je ekvivalentní volaní window.capitaliseFirstLetter() , protože neexistuje žádný bližší nadřazený kontext.
Ale pokud bys provedl následující šílenost (nedělej to!): <textarea onblur='this.capitaliseFirstLetter = window.capitaliseFirstLetter; this.capitaliseFirstLetter(this);'>asb</textarea> this == field
|
||
marek187 Profil |
#5 · Zasláno: 25. 2. 2014, 00:14:20
juriad:
Ďakujem pekne za detailné vysvetlenie mojej otázky, už v tom mám jasnejšie. |
||
1Pupik1989 Profil |
#6 · Zasláno: 25. 2. 2014, 00:48:23
Ještě by byla jedna možnost jak to upravit, ale taktéž bych to moc nedoporučoval
http://kod.djpw.cz/jbcb |
||
_es Profil |
#7 · Zasláno: 25. 2. 2014, 09:13:02
marek187:
Najjednoduchšie je definovať udalosť v JS kóde: objektElementu.onblur=capitaliseFirstLetter; this fungovať správne.
|
||
Časová prodleva: 10 let
|
0