Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di maxtn
    Registrato dal
    Jul 2002
    Messaggi
    712

    Passare da un campo all'altro automaticamente

    Ciao, ho tre campi testo, è possibile fare che quando si è inserito il testo della massima dimensione del campo mi vada automaticamente nel campo successivo?

    Grazie
    Ubuntu 10.10 x86_64

  2. #2
    codice:
    <input type="text" name="campo1" onkeydown="if (this.value.length==20) this.form.campo2.focus();" />
    ciao

  3. #3
    Utente di HTML.it L'avatar di ilgiovo
    Registrato dal
    Aug 2001
    Messaggi
    518
    si è possibile.. devi intercettare l'evento onkeypress su ognuno dei campi e testare in una funzione se il contenuto del campo ha raggiunto la dimensione messima, nel qual caso setti il focus sul campo successivo


    <script language="javascript">
    function checklunghezza(objCampo, maxlunghezza, prossimoCampo) {
    if ((objCampo.value).length >= maxlunghezza)
    eval(prossimoCampo).focus()
    }
    </script>


    <input type="text" id="campo1" onKeyDown="checklunghezza(this, '4', 'campo2')">
    <input type="text" id="campo2" onKeyDown="checklunghezza(this, '4','campo3')">
    <input type="text" id="campo3" onKeyDown="checklunghezza(this, '4','campo1')">
    Cacca!

  4. #4
    Utente di HTML.it L'avatar di maxtn
    Registrato dal
    Jul 2002
    Messaggi
    712
    Originariamente inviato da ilgiovo
    si è possibile.. devi intercettare l'evento onkeypress su ognuno dei campi e testare in una funzione se il contenuto del campo ha raggiunto la dimensione messima, nel qual caso setti il focus sul campo successivo


    <script language="javascript">
    function checklunghezza(objCampo, maxlunghezza, prossimoCampo) {
    if ((objCampo.value).length >= maxlunghezza)
    eval(prossimoCampo).focus()
    }
    </script>


    <input type="text" id="campo1" onKeyDown="checklunghezza(this, '4', 'campo2')">
    <input type="text" id="campo2" onKeyDown="checklunghezza(this, '4','campo3')">
    <input type="text" id="campo3" onKeyDown="checklunghezza(this, '4','campo1')">

    Non mi funziona, non è che è perchè uso mozilla?
    Ubuntu 10.10 x86_64

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    In effetti eval usato a quel modo puo` dare problemi.

    Prova con questo modifica:

    function checklunghezza(objCampo, maxlunghezza, prossimoCampo) {
    if (objCampo.value.length >= maxlunghezza)
    prossimoCampo.focus()
    }


    <input type="text" id="campo1" onKeyDown="checklunghezza(this, 4,this.form.campo2);">
    <input type="text" id="campo2" onKeyDown="checklunghezza(this, 4,this.form.campo3);">
    <input type="text" id="campo3" onKeyDown="checklunghezza(this, 4,this.form.campo1);">

    Nota che ho tolto una serie di apici (che impedivano un corretto funzionamento conle modifiche apportate.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it L'avatar di ilgiovo
    Registrato dal
    Aug 2001
    Messaggi
    518
    questo funzia con mozilla (ma non con IE):

    <script language="javascript">
    function checkCampi(e) {
    switch ((e.target).id) {
    case "campo1":
    maxlength = 4
    prossimoCampo = "campo2"
    break;
    case "campo2":
    maxlength = 4
    prossimoCampo = "campo3"
    break;
    case "campo3":
    maxlength = 4
    prossimoCampo = "campo1"
    break;
    }
    if(((e.target).value).length >= maxlength)
    document.getElementById(prossimoCampo).focus()

    }

    document.captureEvents(Event.KEYPRESS);
    document.onkeypress = checkCampi;
    </script>


    <input type="text" id="campo1">
    <input type="text" id="campo2">
    <input type="text" id="campo3">



    se devi farlo cross-browser devi fare all'inizio un test per vedere che browser ha il client e poi di conseguenza utilizzi un metodo o l'altro... il primo per IE e il secondo per Mozilla
    Cacca!

  7. #7
    Utente di HTML.it L'avatar di maxtn
    Registrato dal
    Jul 2002
    Messaggi
    712
    Ciao ilgiovo, funziona ma ho dei problemi, mi fa inserire 3 caratteri anzichè 2 come specifico in "maxlength", quindi se metto maxlength=1 funziona, però se sbaglio a scrivere nel campo e torno indietro non mi lascia + scrivere 2 caratteri ma 1.
    Ubuntu 10.10 x86_64

  8. #8
    Utente di HTML.it L'avatar di maxtn
    Registrato dal
    Jul 2002
    Messaggi
    712
    up
    Ubuntu 10.10 x86_64

  9. #9
    Utente di HTML.it L'avatar di maxtn
    Registrato dal
    Jul 2002
    Messaggi
    712
    Qualcuno sa aiutarmi? please!
    Ubuntu 10.10 x86_64

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 © 2024 vBulletin Solutions, Inc. All rights reserved.