Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    js antispam non va in IE

    ciao a tutti! ho un problemone...

    ho trovato un piccolo script antispam per gb. Alla pressione di un tasto nei campi si incrementa una variabile e dato che i bot fanno solo copia incolla x loro rimane 0.

    però.. con IE non funziona!!! come mai?

    GRAZIE MILLE PER UNA RISPOSTA!

    codice:
    //CONTA I TASTI PREMUTI PER EVITARE CHE SIA UN BOT A SCRIVERE
    kd= 0;
    ka= 0;
    function cf() {
    kd++;
    document.forms["modulo"].contaparole.value= kd;
    } 
    function ca() {
    ka++;
    document.forms["modulo"].contaautore.value= ka;
    }
    
    
    E POI
    <input type="text" name="nick" OnKeyUp="ca()" size="30" maxlength="40">
    <textarea style="height:180px; width:300px" name="testo" id="testo" OnKeyUp="cf()"></textarea>
    
    
    <input type="hidden" name="contaparole" value="0">
    <input type="hidden" name="contaautore" value="0">
    "Ma a noi piace ripensare alla tua voglia di partire
    Alla moto caricata all'impossibile
    Agli scherzi di Alberto, alla sete di avventura
    E' un bel modo per dire libertà"
    (MCR)

  2. #2
    Guarda se semplificando un po' la cosa si sistema (cerca anche di separare i vari elementi della pagina, usando correttamente XHTML, CSS e Javascript e tenendoli appunto ben separati tra loro):

    codice:
    XHTML
    
    <input id="nick" name="nick" size="30" maxlength="40" />
    <textarea id="testo" name="testo"></textarea>
    
    
    CSS
    
    textarea
    {
       width:300px; height:180px;
    }
    
    
    Javascript
    
    window.onload = function()
    {
       var nick = document.getElementById('nick')
       var testo = document.getElementById('testo')
       var caratteri_nick = 0;
       var caratteri_testo = 0;
       
       nick.onkeyup = function()
       {
          caratteri_nick++
       }
       testo.onkeyup = function()
       {
          caratteri_testo++
       }
    
       if ( caratteri_nick > 0 && caratteri_testo > 0 )
       {
          // Invia il form.
       }
    }
    Una raccomandazione sul markup del form: scrivilo in modo che il modulo risulti accessibile. Se ti serve aiuto in merito, questa guida può fornirtelo:

    - http://www.webaccessibile.org/argome...to.asp?cat=295


  3. #3
    grazie mille! ora però ho un problemino:

    il form lo elabora solo quando la persona clicca ok e quando faccio un controllo. Posso passare la variabile testook (che ho inserito nel tuo script) e il suo valore da una funzione all'altra?
    codice:
     
    
    if ( caratteri_nick > 0 && caratteri_testo > 0 )
       {
          testook = 1;
       }
    
    
    
    
    function Modulo() {
         // Variabili associate ai campi del modulo
         var nickname = document.modulo.nick.value;
         var testo = document.modulo.testo.value;
    
        
            //Effettua il controllo sul campo NICKNAME
            if ((nickname == "") || (nickname == "undefined")) {
               alert("Devi inserire il tuo nome");
               document.modulo.nickname.focus();
               return false;
            }
            //Effettua il controllo sul campo testo
            else if ((testo == "") || (testo == "undefined")) {
               alert("Il messaggio deve contenere qualcosa...");
               document.modulo.testo.focus();
               return false;
            }
            //INVIA IL TESTO
            else if (testook == "1")
            {
               document.modulo.action = "guestbook.php?gb=elabora";
               document.modulo.submit();
            }
             else  {
               alert("Niente spam please!");
               document.modulo.testo.focus();
               return false;
            }
      }
    "Ma a noi piace ripensare alla tua voglia di partire
    Alla moto caricata all'impossibile
    Agli scherzi di Alberto, alla sete di avventura
    E' un bel modo per dire libertà"
    (MCR)

  4. #4
    Affinchè una funzione sia visibile in funzioni distinte occorre che essa sia dichiarata in modo globale, ovvero al di fuori di tutte le funzioni. Ad esempio:

    codice:
    var testook = 0
    
    if ( caratteri_nick > 0 && caratteri_testo > 0 )
    {
       testook = 1
    }
    Tra i link utili dovresti trovare una pillola molto interessante di andr3a riguardo lo scope (visibilità) delle variabili.

  5. #5
    Continua a non andare. Questo è lo script. La funzione modulo() parte al click del bottone del form. Però mi esce sempre "no spam please", quindi vuol dire che non riesce ad assegnarmi il valore 1 alla variabile testook . come mai? grazie mille ancora...


    codice:
    var testook = 0;
    
    window.onload = antispam()
    {
       var nick = document.getElementById('nick')
       var testo = document.getElementById('testo')
       var caratteri_nick = 0;
       var caratteri_testo = 0;
       
       nick.onkeyup = function()
       {
          caratteri_nick++
       }
       testo.onkeyup = function()
       {
          caratteri_testo++
       }
    
       if ( caratteri_nick > 0 && caratteri_testo > 0 )
       {
          testook = 1;
       }
    }
    	
    	//CONTROLLO CAMPI
    
      function Modulo() {
         // Variabili associate ai campi del modulo
         var nickname = document.modulo.nick.value;
         var testo = document.modulo.testo.value;
    
        
            //Effettua il controllo sul campo NICKNAME
            if ((nickname == "") || (nickname == "undefined")) {
               alert("Devi inserire il tuo nome");
               document.modulo.nickname.focus();
               return false;
            }
            //Effettua il controllo sul campo testo
            else if ((testo == "") || (testo == "undefined")) {
               alert("Il messaggio deve contenere qualcosa...");
               document.modulo.testo.focus();
               return false;
            }
            //INVIA IL TESTO
            else if (testook == "1")
            {
               document.modulo.action = "guestbook.php?gb=elabora";
               document.modulo.submit();
            }
             else  {
               alert("Niente spam please!");
               document.modulo.testo.focus();
               return false;
            }
      }
    "Ma a noi piace ripensare alla tua voglia di partire
    Alla moto caricata all'impossibile
    Agli scherzi di Alberto, alla sete di avventura
    E' un bel modo per dire libertà"
    (MCR)

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.