Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    11

    Script per cambiare focus col tasto enter

    Hola,
    script per evitare la pressione accidentale del tasto enter, che in un form equivale generalmente a submit:

    <code>
    <script type="text/javascript">
    function handleEnter (field, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13){
    var i;
    for (i = 0; i < field.form.elements.length; i++)
    if (field == field.form.elements[i])
    break;
    i = (i + 1) % field.form.elements.length;
    field.form.elements[i].focus();
    return false;
    }
    else
    return true;
    }
    </script>
    </code>

    Funziona su IE e Chrome (da' il focus al field successivo) ma non su Firefox (submitta il form). Qualcuno ha idea del perche'? :master:
    Ciauz,

    Panamon Rn+

    PS: Lo richiamo con:
    <code>
    <input type="text" name="campo" id="campo" value="" onKeyPress="return handleEnter(campo, event);">
    </code>
    Panamon Rn+

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    onkeydown

    Massimo

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    11

    Neanche con onKeyDown funziona

    Massimo, ti ringrazio per il suggerimento ma non funziona lo stesso: anche con onKeyDown submitta subito.
    Panamon Rn+

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    provato con Firefox3 e Msie8 ES:

    <form action="http://www.massimo61.org/" method="post">
    <input type="text" name="campo" id="campo" value="" onkeydown="return handleEnter(campo, event);">
    <input type="text" name="campo1" id="campo1" value="" onkeydown="return handleEnter(campo1, event);">
    <input type="text" name="campo2" id="campo2" value="" onkeydown="return handleEnter(campo2, event);">
    <input type="text" name="campo3" id="campo3" value="" onkeydown="return handleEnter(campo2, event);">
    <input type="submit" value="clicca">
    </form>


    Quando il cursore si trova nel campo3 e premi Enter il button "submit" ha il focus e invia il modulo, fai rimanere il cursore su campo3 impostando come nell'esempio

    handleEnter(campo2, event);

    Massimo

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    11
    Massimo, sei molto gentile ma non funziona ancora...
    E anch'io sto testando su FF3.
    Non capisco cosa ci sia che non va: puo' essere forse il LiveValidation?
    Eppure su Chrome e IE funziona tutto perfettamente!
    Stasera appena riesco butto tutto online e posto un link, così approfitto ancora della tua pazienza e ti mostro direttamente il codice.
    Ciao,

    Marco - Panamon Rn+
    Panamon Rn+

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    11
    Ri-hola,
    ecco trovato il colpevole. Avevo messo:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    con le virgolette anche intorno alla link alla pagina del W_mollatemi_3_org

    Cmq per inciso a me sembra sempre scandaloso che noi dobbiamo dichiarare tutto, omologare, attenerci, guardare i deprecati, il W3C ecc. e poi accettare muti e zitti il fatto che 3 multinazionali come Microsoft Mozilla e Google non riescono a fare tre cavolo browser con un minimo di compatibilità!
    Grazie a Massimo che mi ha aiutato e a chi ha letto,

    Panamon Rn+ - Marco

    Panamon Rn+
    Panamon Rn+

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.