Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di luigi76
    Registrato dal
    Jan 2001
    Messaggi
    460

    Intercettara la modifica dati di una form

    Saluto tutti del forum
    volevo sapere in che modo è possibile verificare se in una form è stato modificato qualche dato in un campo ?

    Grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: Intercettara la modifica dati di una form

    Originariamente inviato da luigi76
    Saluto tutti del forum
    volevo sapere in che modo è possibile verificare se in una form è stato modificato qualche dato in un campo ?

    Grazie anticipatamente
    salvo qualche soluzione migliore si mette una variabile globale, per esempio:
    var modificato = false;

    poi si aggiunge l'evento onchange di ogni elemento, e in questo evento si mette: modificato = true

    Pietro

  3. #3
    Utente di HTML.it L'avatar di luigi76
    Registrato dal
    Jan 2001
    Messaggi
    460
    Non so se qualcuno ha fatto caso a Gmail nell'area impstazione
    viene abilitato il tasto di salva modifica solo quando è stato modificato qualche elmento del modulo, infatti ne caso in cui si modifica la form e si riporta di nuovo come lo stato iniziale il tasto viene disabilitato di nuovo.

    Esiste un modo per verificare la differenza della form iniziale e quella modificata?

    Grazie molto

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    puoi impostare una funzione che a intervalli regolari controlla se il contenuto della textarea è cambiato. Infatti l'evento onchange non si attiva quando si fa copia e incolla

    potresti fare una cosa del genere:

    codice:
    <head>
    <script>
    var testo = '';
    
    function is_modified_ta() {
       testo_attuale = document.getElementById('msg').value;
       if (testo_attuale != testo) {
           try {
              document.getElementById('salva').removeAttribute('disabled');
           } catch(e) { }
       }
       testo = testo_attuale;
       setTimeout('is_modified_ta()', 5000)
    }
    
    function salva() {
        document.getElementById('salva').disabled = 'disabled';
    }
    
    
    window.onload = function() {
       is_modified_ta();
    }
    </script>
    
    <body>
    <textarea id="msg"></textarea>
    
    <input type="button" value="salva" id="salva" onclick="salva()" disabled="disabled" />
    
    </body>
    Ciao
    -Fab-
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it L'avatar di luigi76
    Registrato dal
    Jan 2001
    Messaggi
    460
    Grazie ma nel caso in cui voglio verificare dinamincamente
    se uno dei tanti campi presenti in una form , esiste 1 modo?

    Grazie ancora

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    boh! guarda se può andare:

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Pagina senza titolo</title>
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    var dati_modificati = false;
    function window_onload() 
    {
    	for (var i = 0; i < document.forms[0].length;i++) 
    	{ 
    	    var tempobj = document.forms[0].elements[i]; 
    	    if(tempobj.attachEvent)
    		    tempobj.attachEvent("onchange", function(){self.dati_modificati = true;document.getElementById("Submit1").disabled = false;} );
    	    else if(tempobj.addEventListener)
    		    tempobj.addEventListener("change", function(){self.dati_modificati = true;document.getElementById("Submit1").disabled = false;}, false);
    
    	} 
    
    }
    
    
    
    
    function form1_onreset() 
    {
        dati_modificati = false
        document.getElementById("Submit1").disabled = true;
    }
    
    // ]]>
    </script>
    </head>
    <body onload="return window_onload()">
    <form id="form1" action="?" onreset="return form1_onreset()">
        <textarea id="TextArea1" cols="20" rows="2"></textarea>
        <input id="Text1" name="Text1" type="text" />
        <input id="Checkbox1" name="Checkbox1" type="checkbox" />
        <input id="Radio1" name="radio" type="radio" />
        <input id="Radio2" name="radio" type="radio" />
        <hr />
        <input id="Submit1" type="submit" value="submit" disabled="disabled"/>
        <input id="Reset1" type="reset" value="reset"  />
    </form>
    </body>
    </html>
    Pietro

  7. #7
    Utente di HTML.it L'avatar di luigi76
    Registrato dal
    Jan 2001
    Messaggi
    460
    Non va perchè
    se modifico i valori nei campi mi abilita il tasto.
    Ma nel momento in cui riporto manualmente i valori allo stato iniziale
    il tasto dovrebbe essere disabilitato, quindi non tiene conto dello stato iniziale.

    Grazie ancora

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da luigi76
    Non va perchè
    se modifico i valori nei campi mi abilita il tasto.
    Ma nel momento in cui riporto manualmente i valori allo stato iniziale
    il tasto dovrebbe essere disabilitato, quindi non tiene conto dello stato iniziale.

    Grazie ancora
    sinceramente non capisco proprio per riportare il form allo stato originale hanno inventato il tasto di reset, che mi pare funzioni

    comunque, se trovi una soluzione decente, falla conoscere. ciao
    Pietro

  9. #9
    Utente di HTML.it L'avatar di luigi76
    Registrato dal
    Jan 2001
    Messaggi
    460
    Mi sono io spiegato male
    Io ho 1 form
    Voglio abilitare il tasto salva solo se quella form sia sta modificata
    cioè i valori iniziali della form sono diversi da quelli dopo modifica.

    Cioè inizialmente ho una form con una
    1. check box spuntata
    2. Tolgo la spunta si abilita salva
    3. Rimetto la spunta quindi il tasto si disabilita

    Questo comportamento vorrei che lo facesse dinamicamente per tutti i campi presenti nella form.


    Non so se sono riuscito a spiegare.

    Grazie ancora

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da luigi76
    Mi sono io spiegato male
    Io ho 1 form
    Voglio abilitare il tasto salva solo se quella form sia sta modificata
    cioè i valori iniziali della form sono diversi da quelli dopo modifica.

    Cioè inizialmente ho una form con una
    1. check box spuntata
    2. Tolgo la spunta si abilita salva
    3. Rimetto la spunta quindi il tasto si disabilita

    Questo comportamento vorrei che lo facesse dinamicamente per tutti i campi presenti nella form.


    Non so se sono riuscito a spiegare.

    Grazie ancora
    Allora ti sei spiegato benissimo
    Però spetta a te estrapolare le soluzioni ed adattarle al tuo caso.
    Quella di fcaldera è interessante (non so se tu l'hai vista )
    Quella che ti ho proposto io funziona lo stesso e la uso normalmente. Io la uso in questo contesto:
    Un form con più campi e link per navigare. Quando navigo (cambio pagina) devo essere avvisato se ho modificato dati e non ho salvato.
    Se modifico più campi, non posso certo ritornare indietro a mano (e chi si ricorda come). Utilizzo il pulsante reset che, ripeto, fa quella funzione.
    Pietro

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.