bulvio Inviato 16 Ottobre 2013 Segnala Condividi Inviato 16 Ottobre 2013 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... Flickr Link al commento Condividi su altri siti Altre opzioni di condivisione...
pix Inviato 16 Ottobre 2013 Segnala Condividi Inviato 16 Ottobre 2013 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 Altre opzioni di condivisione...
bulvio Inviato 17 Ottobre 2013 Autore Segnala Condividi Inviato 17 Ottobre 2013 <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... Flickr Link al commento Condividi su altri siti Altre opzioni di condivisione...
pix Inviato 17 Ottobre 2013 Segnala Condividi Inviato 17 Ottobre 2013 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 Altre opzioni di condivisione...
bulvio Inviato 17 Ottobre 2013 Autore Segnala Condividi Inviato 17 Ottobre 2013 Effettivamente mi ero decisamente complicato la vita... Chissà perché poi... Vabbè, risolto, grazie @pix. Flickr Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.