Newsgroup: it.comp.lang.javascript
Titolo: controlli JS su campi Input

Ho un problemino.. :)
ho un form abbastanza complesso e con numerosi e diversi campi input,
devo inserire un controllo che SE E SOLO SE uno di questi viene modificato
mi attiva un'alert nel momento in cui torno indietro senza confermare la
modifica.
si può evitare di inserire su ogni campo una chiamata alla mia funzione
all'evento onChange
o posso fare un ciclo su tutti i campi presenti ke mi controlli se sono
stati cambiati?
Sse si, come posso fare?
Grazie mille..

 stati cambiati?
Sì, i tag input espongono la proprietà defaultValue che indica il valore
"originale".
Puoi quindi ciclarli e vedere se value!=defaultValue
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 Puoi quindi ciclarli e vedere se value!=defaultValue
Grazie..
però adesso come faccio a ciclare su tutti i campi ke si chiamano in modi
diversi?

 diversi?
<ipotesi>
Tutti i tag input sono dentro la stessa form
</ipotesi>
Un qualcosa del tipo:
with(document.forms[0])
 for(int x=0;x<elements.length;x++)
 if(element[x].type=="text"&&elements[x].value!=elements[x].defaultValue)
  alert("modificato!");
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 cmq ora provo
Sě, prova perché io lo ho usato solo con input.
-- 
"e mai che mi sia venuto in mente
 di essere piů ubriaco di voi
 di essere molto piů ubriaco di voi"
									  F.D.A.

   alert("modificato!");
Si, tutti i tag input sono nella stessa form.
Il defaultValue vale solo x i campi text o anke x tutti gli
altri compresi i campi select e checkbox?
cmq ora provo
Grazie

 altri compresi i campi select e checkbox?
Il tag "select" non ha un attributo "value", quindi il defaultValue non vi
si applica; mentre i checkbox hanno sì l'attributo "value" ma è fisso, non
modificabile dall'utente, ergo neppure in tal caso il defaultValue è
presente.
-- 
ZER0
~ The Tangent Universe collapsed 6002 days, 3 hours, 20 minutes and 25 seconds ago.

 presente.
Infatti.. i campi select mi danno come valore di default "Undefined"..  :(
potrei usare qualke altro valore x sapere se è stato cambiato?

 potrei usare qualke altro valore x sapere se è stato cambiato?
In quei casi devi gestirti la cosa a mano.
-- 
ZER0
~ The Tangent Universe collapsed 6002 days, 7 hours, 55 minutes and 55 seconds ago.
on air ~ "IL FANTASTICO MONDO DI PAUL"

EVVAI!!!
le select non hanno il defaulValue,
ma hanno il defaultSelected!!
questo è il codice completo se può essere utile.
Ciao e grazie a tutti..
<SCRIPT LANGUAGE="JavaScript">
 function ConfirmExit() {
  with(document.forms[1]) {
   for(x=0; x<elements.length; x++) {
    if(((elements[x].type=="text") || (elements[x].type=="textarea")) &&
(elements[x].value!=elements[x].defaultValue)) {
      if (confirm('Vuoi uscire senza aver confermato le modifiche
effettuate?')) {return true;} else {return false;}
     } else {
      if((elements[x].type=="select-one")) {
        for (var y=elements[x].length-1 ; y>-1  ; y--) {
        if
(elements[x].options[y].selected!=elements[x].options[y].defaultSelected) {
         if (confirm('Vuoi uscire senza aver confermato le modifiche
effettuate?')) {return true;} else {return false;}
        }
      }
     }
    }
   }
   return true;
  }
}
</script>