Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Controllo Caratteri

  1. #1
    Utente di HTML.it L'avatar di Laiton
    Registrato dal
    Dec 2011
    Messaggi
    95

    Controllo Caratteri

    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

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    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

  3. #3
    Utente di HTML.it L'avatar di Laiton
    Registrato dal
    Dec 2011
    Messaggi
    95
    ok, ecco il codice;

    html (i campi della funzione controllo_campo sono l'id del form e l'id dell'oggetto.
    codice:
    <input id="regname" type="text" value="" onkeypress="controllo_campo('regform',this.id);">
    js (questa funzine effettua solo uno stupido controllo sulla lunghezza e stampa in un div tramite jquery un messaggio)
    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]"); 
    }
    il problema e che se scrivo nell'input, ma sbaglio a cancellare una lettera il tasto Backspace non viene contato nell'evente onkeypress.

    spero di essermi spiegato bene

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    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

  5. #5
    Utente di HTML.it L'avatar di Laiton
    Registrato dal
    Dec 2011
    Messaggi
    95
    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"

  6. #6
    Utente di HTML.it L'avatar di Laiton
    Registrato dal
    Dec 2011
    Messaggi
    95
    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!!

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    No, il press rileva l'attimo che il tasto scende up che il tasto sale.
    Con alcuni tasti il press non funziona correttamente ecco il motivo d'usare up
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    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 correttamente ecco il motivo d'usare up
    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]
    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.

  9. #9
    Utente di HTML.it L'avatar di Laiton
    Registrato dal
    Dec 2011
    Messaggi
    95
    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.

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.