Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Safari e submit form

  1. #1

    Safari e submit form

    Ciao, ho un problema con il submit di un form e la disabilitazione del tasto invio, ecco il codice:
    codice:
    function disableEnterKey(e)
    {
    	if (e.keyCode==13) {
    		alert("Compila tutti i campi..");
    		return false;
    	} 
    }
    codice:
    <form action="register.php" method="POST" name="form1" onkeydown="disableEnterKey(event);" onkeyup="disableEnterKey(event);">
    con firefox e ie funziona perfettamente questo metodo, ma con safari dopo che si visualizza l'alert, il form fa il submit come se niente fosse..
    avete idee?
    Bill chi???ahh quello che ha inventato i cassonetti dell'immondizia!!
    -----------------------------------------------

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    aggiungi il return cosi return disableEnterKey(event)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    115
    apparte che non ne capisco il motivo, comunque basta l'evento onkeydown e prova a metterlo nell'input.


    edit:

    scusa non me ne ero accorto, prova con:

    codice:
    <form action="register.php" method="POST" name="form1" onkeydown="return disableEnterKey(event);">

    codice:
    function disableEnterKey(e)
    {
    	if (e.keyCode==13) {
    		alert("Compila tutti i campi..");
    		return false;
    	} 
    
    	return true;
    }
    Macbook 1.3'' v5

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    senza return, true o false che sia
    se devi cancellare l' evento usa

    if(e.preventDefault) e.preventDefault();
    else e.returnValue=false;

  5. #5
    con il return prima del nome della funzione va perfettamente grazie mille
    Bill chi???ahh quello che ha inventato i cassonetti dell'immondizia!!
    -----------------------------------------------

  6. #6
    Io ho un problema simile, con Chrome (ma credo che la base comune WebKit sia la causa).

    Avendo una routine che permette di navigare da un controllo di un form ad un altro con l'invio, mi capita con il browser di Google che ogni tanto questo faccia il submit da solo del form, anziché il semplice spostamento da un controllo ad un altro.
    Ho già impostato return false al termine della funzione, che qui incollo:

    codice:
            if (document.layers) 
                document.captureEvents(Event.KEYDOWN); 
                document.onkeydown =
                function (evt,who,elemindex) { 
                    var keyCode = evt ? (evt.which ? evt.which : evt.keyCode) : event.keyCode; 
                    if (keyCode == 13){ 
                    
                             alert('tasto'); 
                            var who = evt ? (evt.target ? evt.target : evt.srcElement) : event.srcElement; 
                            if (who.name=='') return; 
                            getIndex(who.name,who.sourceIndex); 
                            if(IndiceForm===null) return; 
                            var trovato=false; 
                            var divPartenza=getParent(IndiceForm); 
                            for (var y=IndiceForm; y><document.forms.length; y++){ 
                                if (trovato) break; 
                                if (getParent(y)!=divPartenza) break; 
                                for (var z=IndiceElemento+1; z><document.forms[y].elements.length; z++){ 
                                    trovato=false; 
                                    if (document.forms[y].elements[z].type=='hidden'){ 
                                        continue; 
                                    } 
                                    else if (document.forms[y].elements[z].disabled){ 
                                        continue; 
                                    } 
                                    else{ 
                                        trovato=true; 
                                        document.forms[y].elements[z].focus(); 
                                        if (document.forms[y].elements[z].type=='text')    document.forms[y].elements[z].select(); 
                                        break; 
                                    } 
                                } 
                                IndiceElemento=-1; 
                            } 
                
         return false; 
                        } 
                    
                    }


    ma il risultato non cambia: Chrome continua a fare il submit del form da solo.
    Come posso fare?
    All of the true things that I am about to tell you are shameless lies.
    (Bokonon Books)

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