Visualizzazione risultati 1 fino 4 di 4

Discussione: Usare catch(e) per "premere" un submit in javascript

  1. #1
    Guest

    Predefinito Usare catch(e) per "premere" un submit in javascript

    Allora ragazzi, mi servirebbe che quando premo su Enter vengano inviati tutti i dati in quel form, mi spiego meglio. Uso un form tramite il quale io possa essere contattato via mail dagli utenti. Il form manda tutto a contattami.php che elabora i dati e me li invia via mail.
    ecco il codice:
    index.php
    Codice HTML:
    <html>
       <head>
          <script type="text/javascript" src="script.js"></script>
       </head>
       <body>
          <form action="contattami.php" method="post">
             <input type="text" name="name"/>
             <br>
             <textarea name="mail"></textarea>
             <input type="submit" style="display: none;" name="invmail" />
          </form>
       </body>
    </html>
    adesso io vorrei che quando uno scrive nella textarea e quando preme Enter che non gli vada a capo ma che venga inviato. Che codice devo inserire in script.js affinche quando premo Enter venga "virtualmente premuto" il submit nascosto. Grazie a tutti in anticipo.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,257

    Predefinito

    Perché usare try-catch quando se ne può far a meno?

    Codice HTML:
    <html>
    	<head>
    		<meta charset="UTF">
    		<title>gestione textarea</title>
    		<script type="text/javascript">
    
    			window.onload = function()
    			{
    				document.getElementById('testo').addEventListener("keypress", function(evento) { controlla(evento); }, false);	//se viene premuto un tasto nella textarea, richiamo controlla() passando l'evento
    			}
    
    			function controlla(evento)
    			{
    				if(evento.keyCode == 13)	//se premo invio
    					document.getElementById('nome_form').submit();	//invio il form
    			}
    		</script>
    	</head>
    	<body>
    		<form id="nome_form" action="contattami.php" method="post">
    			<textarea id="testo"></textarea>
    		</form>
    	</body>
    </html>
    Nota che non è necessario usare il div per recuperare il form: invece di document.getElementById() puoi usare document.forms[] o document.nome_form.

    Ciao!
    Ultima modifica di alemoppo : 29-12-2013 alle ore 22.17.33

  3. #3
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Te lo sconsiglio, in quanto se presenti un campo di testo sufficientemente grande ed evidentemente adatto ad ospitare più righe di testo, l'utente si aspetta che premendo il tasto invio venga inserita un'interruzione di riga. Se però invece il modulo venisse inviato, l'utente anzitutto non capirebbe cosa stia succedendo e si troverebbe costretto a ricompilare il tutto in quanto probabilmente non aveva completato il messaggio. Il tutto a danno dell'utente.

  4. #4
    Guest

    Predefinito

    Grazie, domani provo se va.
    --
    Perfetto, grazie mille.
    Ultima modifica di javascripter : 30-12-2013 alle ore 20.51.27

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •