• User Attivo

    problema di eventi

    ciao a tutti,
    con il seguente codice js:

    document.getElementById('mm').value=nuovo_mese;
    document.getElementById('gg').value=nuovo_giorno;
    

    inserisco in due campi input dei valori. Ho poi un controllo js per compiere un'azione quando il l'input cambia valore. Io ho usato "onChange" ma non funziona; si accorge del cambio dato se io direttamente con mouse e tastiera modifico l'input... ho provato con onPropertyChange ma funziona solo con explorer... qualcuno sa suggerirmi qualcosa?grazie in anticipo:)


  • User Attivo

    nessuno?😢


  • User

    Non puoi richiamare la funzione come callback ?
    Posta un po di codice altrimenti è difficile da capire


  • User Attivo
    
    INDEX.PHP
    <html>
    <head>
         window.addEvent('domready', function() {
              $('gg').addEvent('change', function() {
              document.data.submit();
              });
         });
    </head>
    <body>
    ...
      <?php
         echo"
         <form name='data' method='post' action='index.php'>
            <input type='hidden' name='gg' id='gg' value='".$_POST['gg']."'></input>
           <input type='hidden' name='mm' id='mm' value='".$_POST['mm']."'></input>
         </form>";
      ?>
    </body>
    </html>
    
    FILE JAVASCRIPT.JS
    ...
    document.getElementById('mm').value=nuovo_mese;
    document.getElementById('gg').value=nuovo_giorno;
    ...
    
    
    • il file INDEX è la pagina dove si svolge tutto, ho tolto il codice superfluo: quando invio i dati del form li invio alla stessa pagina ricaricandola.
    • nel FILE JAVASCRIPT esterno ho l'istruzione che mi va a modificare il contenuto delle caselle del form citato nella index in base al valore assunto dalle variabili nuovo_mese e nuovo_giorno.
      Non riesco a capire come mai l'evento "change" non riconosce quando la modifica dei dati del form non avviene.:x

  • User

    onchange va scritto tutto in minuscolo.
    Devi utilizzare per forza mootools?


  • User Attivo

    No, però non essendo un espertissimo js, uso MooTools per gestire tutto in modalità cross-browser. E' una bella soluzione o non tanto? Pon ne approfitto per chiedere: un amico mi ha detto che il codice js è "poco carino" inserirlo qua e la nell' html (<a href="..." onclick="...">) ma usare sempre un controllo nell'head come in questo caso.. è vero?:D
    Comunque facendo ricerche ho trovato che onchange è un evento che rileva il cambiamento solo fatto dall' utente: allora "simulare" questo cambiamento con uno script non ho idea di come si faccia e mi sembra stupido, ho spostato document.data.submit(); in una posizione dove viene eseguito comunque al momento giusto! :figo2: