Salve,
vorrei creare una funzione di controllo in javascript che mi controlli la lunghezza dell'input nel momento in cui vengono inseriti i caratteri (evento keypress) e che tenga in considerazione anche il tasto "cancella" e "canc".
Grazie
Salve,
vorrei creare una funzione di controllo in javascript che mi controlli la lunghezza dell'input nel momento in cui vengono inseriti i caratteri (evento keypress) e che tenga in considerazione anche il tasto "cancella" e "canc".
Grazie
Cosa vuol dire che tenga in considerazione anche il tasto "cancella" e "canc", io non userei il press ma up (che da meno problemi di gestione), inizia col imbastire il form la funzione e indica cosa devi fare nello specifico poi posta il codice e html![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
ok, ecco il codice;
html (i campi della funzione controllo_campo sono l'id del form e l'id dell'oggetto.
js (questa funzine effettua solo uno stupido controllo sulla lunghezza e stampa in un div tramite jquery un messaggio)codice:<input id="regname" type="text" value="" onkeypress="controllo_campo('regform',this.id);">
il problema e che se scrivo nell'input, ma sbaglio a cancellare una lettera il tasto Backspace non viene contato nell'evente onkeypress.codice:function controllo_campo(name_f,id_c) { var campo = document.forms[name_f].elements[id_c].value; if ((campo.length > 3) && (campo.length < 31)) $('#'+id_c+"_div").html("<b style='color: #00ff00'>[OK][/b]"); else $('#'+id_c+"_div").html("<b style='color: #ff0000;'>[min: 4 - max 30][/b]"); }
spero di essermi spiegato bene![]()
Hai provato con onkeyup al post del press se ha lo stesso problema? Considerare lo spazio un "carattere" devi creartelo usando event.keycode![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
ok, provo subito grazie per il consiglio. Poi faccio sapere che cacchio succede![]()
ps: Backspace non è lo spazio, ma il tasto sopra l'invio, ovvero lo "spazio indietro"
allora, con l'evento " onkeyup " il tutto ciò funziona!
Grazie per l'aiuto, stava impazzendo.
Ma non sono ancora riuscito a comprendere la differenza tra i due eventi, mi pare quasi identica solo che "onkeypress" riconosce solo i caratteri della tastiera, bho!!
No, il press rileva l'attimo che il tasto scende up che il tasto sale.
Con alcuni tasti il press non funziona correttamenteecco il motivo d'usare up
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
In realtà la sequenza è la seguente:[list=1][*]onkeydown (il tasto scende)[*]onkeyup (il tasto è stato rilasciato)[*]onkeypress (il tasto è stato rilasciato ed è già stato scatenato l'evento keyup)[/list=1]Originariamente inviato da cavicchiandrea
No, il press rileva l'attimo che il tasto scende up che il tasto sale.
Con alcuni tasti il press non funziona correttamenteecco il motivo d'usare up
L'evento keypress viene rilasciato in maniera SINCRONA dopo l'evento keyup (significa che se lanci un alert sul keyup che metta in pausa l'esecuzione del codice l'evento keypress non verrà scatenato fin quando non premerai "ok"). L'evento keyup viene invece rilasciato in maniera ASINCRONA dopo l'evento keydown (significa che se lanci un alert sul keydown che metta in pausa l'esecuzione del codice l'evento keyup verrà comunque scatenato al rilasciare del tasto al di là che tu abbia premuto "ok" sull'alert o meno).![]()
Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.
ok, mi è appena sorto un problema xD
una volta che inserisco il valore nel campo input ed invio il valore tramite form questo valore si salva, in quel solito menù tendina che esce se si clicca sull'input stesso.
Non c'è un evento che indica il cambio di stato dell''input.
onchange non va bene perchè devo per forza focussare un altro oggetto per attivare questo controllo.
Spiegazione del problema incomprensibile, posta il codice e html circoscritto al problema, oppure (anche meglio) link alla pagina pubblica.![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui