Autor Zpráva
ad48
Profil *
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
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 *
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
Reaguji na ad48:
Bod 1 stále platí.

this.value.length=='&lt;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&lt;'
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
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
Reaguji na Witika:
Při definice události v HTML nelze kód rozdělit do řádek.
Lze.
Witiko
Profil
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
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
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ý.

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