Autor | Zpráva | ||
---|---|---|---|
ad48 Profil * |
#1 · Zasláno: 27. 9. 2010, 11:23:30
Napsal jsem toto:
<input maxlength="10" onblur="if(this.value.length=='1') alert('Slovo ' + this.value +' má ' + this.value.length + ' písmeno'); if(this.value.length=='2'|'3'|'4') alert('Slovo ' + this.value +' má ' + this.value.length + ' písmena'); if(this.value.length=='5'|'6'|'7'|'8'|'9'|'10') alert('Slovo ' + this.value +' má ' + this.value.length + ' písmen')"> Když jsem do pole zadal deset písmen,zobrazili se dvě hlášky,místo jedný. Když jsem do pole zadal pět písmen,zobrazili se tři hlášky,místo jedný. Nevim proč... |
||
Chamurappi Profil |
#2 · Zasláno: 27. 9. 2010, 11:34:02
Reaguji na ad48:
1) Ve vlastnosti length je číslo, proč ho porovnáváš s řetězcem?
2) Jedno svislítko je bitové nebo. Logické nebo jsou dvě svislítka. 3) Každá nebo-část podmínky musí dávat smysl sama o sobě. Nejde porovnávat jednu stranu s několika různými hodnotami zároveň. 4) Na porovnání délek by bylo lepší použít operátory větší/menší než. |
||
ad48 Profil * |
#3 · Zasláno: 27. 9. 2010, 12:06:44
Reaguji na Chamurappi:
Těm odpovědím moc nerozumím. Potom jsem zkusil napsat toto: <input maxlength="10" onblur="if(this.value.length=='1') alert('Slovo ' + this.value +' má ' + this.value.length + ' písmeno'); if(this.value.length=='<4') alert('Slovo ' + this.value +' má ' + this.value.length + ' písmena'); if(this.value.length=='5<') alert('Slovo ' + this.value +' má ' + this.value.length + ' písmen')"> Zadal jsem několik písmen,a pořád to nefungovalo. Jedině fungovalo,když jsem tam dal jedno písmeno. |
||
Chamurappi Profil |
#4 · Zasláno: 27. 9. 2010, 12:13:05
Reaguji na ad48:
Bod 1 stále platí. „this.value.length=='<4'“ Kontroluješ, jestli se délka (což je číslo) rovná řetězci „ <4 “.
Dvě rovnítka jsou operátor ekvivalence. Ty bys místo nich chtěl použít operátor „menší než“. Nebo spíš „menší nebo rovno“, tedy <= .
„this.value.length=='5<'“ A tady bys chtěl asi větší nebo rovno. Je mnohem jednodušší vyhledat si nějaké povídání o operátorech s příklady než střílet naslepo a ptát se, kde je terč. Spolehni se, že porovnávání délky řetězce už pár milionů lidí úspěšně vyřešilo. |
||
Witiko Profil |
#5 · Zasláno: 27. 9. 2010, 12:17:20 · Upravil/a: Witiko
Length není řetězec, nýbrž číslo.
Při definice události v HTML nelze kód rozdělit do řádek. <input maxlength="10" onchange=" if(this.value.length==1) alert('Slovo ' + this.value +' má ' + this.value.length + ' písmeno'); if(this.value.length > 1 && this.value.length < 5) alert('Slovo ' + this.value +' má ' + this.value.length + ' písmena'); if(this.value.length >= 5) alert('Slovo ' + this.value +' má ' + this.value.length + ' písmen'); "> |
||
Chamurappi Profil |
#6 · Zasláno: 27. 9. 2010, 12:19:28
Reaguji na Witika:
„Při definice události v HTML nelze kód rozdělit do řádek.“ Lze. |
||
Witiko Profil |
#7 · Zasláno: 27. 9. 2010, 12:22:20 · Upravil/a: Witiko
Miluju, když zjistím, že autor článku, ze kterého jsem se před lety učil definici událostí přes HTML, mi tvrdil bláboly. Naštěstí definici událostí přes HTML už dávno nepoužívám.
Dotaz #1: Jak děláš ten inline <code></code> viz.: [#4] „<4“ ? Občas by se mi tu na fóru celkem hodil. Dotaz #2: Jak zabránit převodu > a < na entity v code? [#5] |
||
Chamurappi Profil |
#8 · Zasláno: 27. 9. 2010, 14:13:08
Reaguji na Witika:
„Jak děláš ten inline <code></code>?“ Takhle. V ostré verzi diskuse to zatím nejde. „Jak zabránit převodu > a < na entity v code?“ To dělá JUSH, zdejší zvýrazňovač kódu. Nevím proč. Naštěstí to moc nevadí, protože prohlížeč v atributech interpretuje entity. |
||
Witiko Profil |
#9 · Zasláno: 27. 9. 2010, 14:35:58
Chamurappi:
„V ostré verzi diskuse to zatím nejde.“ Heh, chci také heslo od té testovací verze. Argument, že by to mátlo návštěvníky mi přijde dosti chabý. |
||
Časová prodleva: 14 let
|
0