| Autor | Zpráva | ||
|---|---|---|---|
| Lukas1169 Profil |
#1 · Zasláno: 27. 3. 2013, 16:46:15
Mám takýto formulár keď zadám znak ktorý nieje v
var valid = "abcdefghijklmnopqrstuvwxyz0123456789:/." chcel by som aby sa ten znak automaticky hneď vymazal dá sa to Dakujem <HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function validate(field) {
var valid = "abcdefghijklmnopqrstuvwxyz0123456789:/."
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
field.focus();
field.select();
}
}
// End -->
</script>
</HEAD>
<!-- KROK DVA: Zkopírujte následujcí kod do těla BODY -->
<BODY>
<form>
<input type=text name="entry" onBlur="validate(this)">
<br>
<input type=submit value="Odeslat">
</form> |
||
| peta Profil |
<input type=text name="entry" onBlur="validate(this)" onkeydown="validate(this)"> |
||
| pako Profil * |
#3 · Zasláno: 28. 3. 2013, 10:43:51
nahrad si celu cast medzi tagmi
script tymto:
function validate(field) {
var valid = "abcdefghijklmnopqrstuvwxyz0123456789:/.";
var fieldVal = field.value;
var fieldValLen = fieldVal.length;
var lastChar = fieldVal.substring(fieldValLen-1);
if (valid.indexOf(lastChar) === -1) {
field.value = fieldVal.substring(0,fieldValLen-1);
}
}body:
<input type="text" name="entry" onKeyUp="validate(this)"> |
||
| Chamurappi Profil |
#4 · Zasláno: 28. 3. 2013, 11:07:50
Reaguji na paka:
Řekl bych, že tvá funkce nepočítá s možností, že člověk zkusí psát i jinam než na konec dosud napsaného textu. Reaguji na Lukase1169: Přepisovat člověku <input> pod rukama je dost ošklivé. Zvážil bych jiné postupy:
1) Nedovolit uživateli nedovolené znaky napsat, tedy stornovat událost onkeydown vedoucí k jejich napsání. To je trochu složitější, protože v event.keyCode je číslo klávesy, ne přímo znak. A uživatel stejně může vložit nedovolený znak ze schránky (tedy Ctrl+V).
2) Kontrolovat hodnotu a uživatele jen informovat, co zadává špatně, případně mu nedovolit odeslat formulář, dokud chybu nenapraví. (Případně ji při odeslání napravit automaticky, záleží na situaci.) |
||
| pako Profil * |
#5 · Zasláno: 28. 3. 2013, 13:04:04 · Upravil/a: pako
Chamurappi:
pravdu dis, ani ma to nenapadlo. co takto prepisat funckiu na: function validate() {
var field = document.getElementById('entry-input');
var valid = /[!@#\$\%\^\&\*\(\)\{\}\|\"\:\\\?><]/;
for (var i=0;i<field.value.length;i++) {
field.value = field.value.replace(valid, "");
}
}onsubmit formy aj na onblur, pripadne onkeyup inputu
|
||
| Lukas1169 Profil |
#6 · Zasláno: 28. 3. 2013, 18:37:01
pako:
<SCRIPT LANGUAGE="JavaScript">
function validate() {
var field = document.getElementById('entry-input');
var valid = /[!@#\$\%\^\&\*\(\)\{\}\|\"\:\\\?><]/;
for (var i=0;i<field.value.length;i++) {
field.value = field.value.replace(valid, "");
}
}
</script>
<form>
<input type=text name="entry" onBlur="validate(this)">
<br>
<input type=submit value="Odeslat">
</form>A mimochodom ak sa mi to podarí sprovozniť dá sa to odkontrolovať trebars cez isset? či sa náhodou nenachádza v poly zakázaný znak... Ďakujem |
||
| pako Profil * |
#7 · Zasláno: 28. 3. 2013, 19:53:29
nefunguje ti to lebo to bol len napad, nie presny navod na riesenie. napis, ci to chces kontrolovat po kazdom stlaceni klavesy alebo ti staci vymazat zakazane znaky pri odoslani.
cez php by si si to mal urcite skontrolovat na strane servera. |
||
| Lukas1169 Profil |
#8 · Zasláno: 29. 3. 2013, 14:44:43
pako:
po každom stlačení klávesi alebo kopírovaní textu... |
||
| pako Profil * |
#9 · Zasláno: 29. 3. 2013, 21:24:10
v ie6 sa budu dat vlozit neplatne znaky cez kontextove menu ale vycisti sa to pri odosielani + neda sa pohybovat v inpute sipkami. iny explorer na tomto kompe nemam, tak si to radsej este niekde skus.
ak ma byt neplatny znak aj medzera, vyhod si z var invalid=... znaky \s
<script>
function validate() {
var field = document.getElementById('entry-input');
var invalid = /[^\s0-9a-zA-Z\.:-]/g;
for (var i=0;i<field.value.length;i++) {
field.value = field.value.replace(invalid, "");
}
}
</script><form onSubmit="validate()"> <input id="entry-input" type="text" name="entry" onInput="validate()" onKeyUp="validate()"> <br> <input type=submit value="Odeslat"> </form> |
||
| Lukas1169 Profil |
#10 · Zasláno: 1. 4. 2013, 09:44:03
pako:
+ neda sa pohybovat v inpute sipkami. to sa dá :-) a keď si niekto vypne v prehliadaci javu tak prepustí znaky... ? Dá sa to nejako zabezpečiť? ďakujem |
||
| margin Profil * |
#11 · Zasláno: 1. 4. 2013, 10:24:36
Lukas1169:
„keď si niekto vypne v prehliadaci javu tak prepustí znaky... ?“ Javu v PC nemám asi rok (od poslední přeinstalace) a vůbec mi nechybí.JavaScript není Java „Dá sa to nejako zabezpečiť?“ Jedině na serveru. Jedno ze základních pravidel je nikdy nevěřit tomu, co ti posílá uživatel. Všechny javascriptové a a jiné kontroly formulářů v prohlížeči slouží pouze je zvýšení komfortu uživatele. |
||
|
Časová prodleva: 13 let
|
|||
0