Vai al contenuto

[html] Select 'multiple' e submit con INVIO


bulvio

Messaggi raccomandati

Ciao a tutti

non mi spiego una cosa...

 

Ho un semplicissimo form, composto solamente da una SELECT di tipo "multiple", e vorrei che, selezionando le voci con la tastiera (tasti freccia su e giù), si potesse inviare il modulo (submit) con la pressione del tasto ENTER.

La cosa funziona su safari, ma non su Firefox, dove invece devo spostarmi sul bottone di submit usando il tab, e dopo che ho il focus sul bottone, premere Enter.

Tra l'altro, vorrei anche non mettere il bottone di submit (sarebbe inutile), ma questa volta Safari non me lo lascia togliere. Se lo tolgo, o lo rendo anche solo invisibile via css, il submit col tasto enter non funziona più...

 

Si tratta di un gestionale, e quindi vorrei limitare al massimo l'uso del mouse, per velocizzare l'operatività...

 

Grazie...

 

 

Link al commento
Condividi su altri siti

puoi sempre intercettare la pressione del tasto invio (keycode 13).

esempio funzionante:

 

<form id="your_form" name="your_form" action="form_action.php">
<select name="cars" multiple onKeyPress="if(event.keyCode == 13) { document.your_form.submit(); return false; }" >
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
</form>

An  a tuesday keeps the doctor away.

proud member of < noi finti professionisti > club - tessera 044

Link al commento
Condividi su altri siti


<head>
 
    <style> … </style>
    <script>
        function sostituisciTag(tag) {
            var exstr=opener.document.getElementById('materialeddt2').value;
            var newstr=exstr.replace('#', '#'+tag);
            opener.document.getElementById('materialeddt2').value=newstr;
            window.close();
        }
    </script>
 
</head>
<body>
 
    <form id="formtag" onsubmit="javascript: sostituisciTag(document.getElementById('elenco').options[document.getElementById('elenco').selectedIndex].value);" action="#" name="formtag">
        <select id="elenco" onkeypress="javascript: if (event.charCode==13 || event.keyCode==13) { document.formtag.submit(); return false; }" multiple="multiple" name="elenco" size="10" style="width: 99%; height: 95%"> … </select>
        <input type="submit" value="ok"></input>
    </form>
    <script>
        document.getElementById('elenco').focus();
    </script>
 
</body>

 

Ho fatto come mi hai suggerito (in realtà l'avevo già provato ma avevo dimenticato il parametro name sul form, per cui non funzionava...). Adesso intercetta il keypress, ma esegue l'action ('#', ricarica la pagina) anzichè l'evento onsubmit (cioè la funzione che va a sostituire un testo sulla finestra opener... Boh... la cosa folle è che funziona su Safari...

Link al commento
Condividi su altri siti

cioè tu non vuoi inviare dati a un'altra pagina ma vuoi solo eseguire la funzione sostituisciTag() ?

in tal caso eseguire la submit è superfluo.

metti dentro al onkeypress (se premuto enter) direttamente la chiamata a sostituisciTag() con i suoi bei parametri, e hai finito.

An  a tuesday keeps the doctor away.

proud member of < noi finti professionisti > club - tessera 044

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...