Autor Zpráva
High_Voltage
Profil *
Dobrý den, poradíte mi pls kde tu mám chybu ?
je to skript, který ověřuje, jestli pole neobsahuje nepovolené znaky.
Zvlášť prosím věnujte pozornost 10. řádku, protože jsem z toho zmatenej, proč tam je false. Ten skript funguje, když je to zakázané písmeno na prvním místě řetězce. Když je třeba druhé, tak to "řekne" že je vše OK
<form name="formular">
<INPUT TYPE="TEXT" NAME="pole" VALUE="text" ID="pole">
<INPUT TYPE="BUTTON" onclick="kontrola()" VALUE="TEST">
</form>
<script>
var seznamzak = ["á","č","ď","é","ě","í","ň","ó","ř","š","ť","ú","ů","ý","ž"];
function kontrola() {
	var poradi = 0;
	while (poradi < seznamzak.length - 1) {
		if (document.formular.pole.value.indexOf(seznamzak[poradi]) == false) {
			alert('nepovolený znak');
			break;
		}
		else {
			// akce při každém zprávném písmenu
		};
		poradi++;
	};
};
</script>

Pomozte mi s tím pls, díky za každou odpověď, případně odkaz na nějakou alternativu.
_es
Profil
High_Voltage:
Klikni si v tvojom kóde na „indexOf“ a zistíš aké hodnoty tá metóda vracia - ľahko prídeš na to, aký má byť test.
Ten cyklus by sa aj dal nahradiť použitím regulárneho výrazu.
CZechBoY
Profil
hrubka v komentáři :D
místo == false tam dej >=0 a bude to fungovat ;)
false má tuším hodnotu int(0), pole jsou číslovány od indexu 0 proto to funguje jen když je tam písmeno á
funkce indexOf vrací pozici v poli

ošetři velká písmena
Witiko
Profil
High_Voltage:
na nějakou alternativu
Šel bych na to přes regulární výrazy, je to čistší:
/á|č|ď|é|ě|í|ň|ó|ř|š|ť|ú|ů|ý|ž/ig.test(document.formular.pole.value)
Navrátí true / false a bere i velká písmena díky praporku i - ignore case.

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