Ciao e benvenuto.
L'effetto visivo è quello, ma in realtà ripulisce tutti i campi tranne quello appena modificato. Chiaramente vedrai ripulire solo il precedente perché gli altri sono già vuoti.praticamente da quanto leggo dal codice cambiando da un campo input all'altro dovrebbe pulirmi il precedente
Cerco di chiarirti quanto hai chiesto, ma non ti nascondo che queste sono delle nozioni di basi della programmazione, per cui credo che tu abbia sbagliato guida per iniziare. Magari dovresti iniziare da qualcosa di più basilare... o magari hai semplicemente saltato qualche capitolo in modo poco furbo
Comunque sia, il primo if è una semplice condizione che sostanzialmente considera tutti gli elementi che sono diversi da quello preso in esame (cioè quello che si riferisce alla variabile kanga passata alla funzione). Chiaramente va tenuto presente che siamo dentro un ciclo, il quale è impostato per creare un'iterazione sui 4 campi input nell'esempio.
Traducendo la condizione in italiano, possiamo dire che tutte le volte che la variabile i (incrementata durante il ciclo for) risulta non uguale ("!=") alla variabile kanga, argomento della funzione (decrementata di 1)*, cioè dall'indice riferito al nome del campo che ha richiamato la funzione, allora il valore del campo (considerato in riferito all'iterazione corrente del ciclo) viene vuotato.
Se tale condizione non è soddisfatta, significa che si tratta del campo sul quale si sta agendo, per cui avverrà l'azione definita dentro il blocco else.
* la variabile kanga avendo 1 come primo valore, in riferimento agli elementi considerati, viene decrementata di 1 per poterla correttamente comparare col valore di i che invece parte da 0.
Questo è dovuto a due fattori:
- fattore computazionale - generalmente in programmazione un vettore (array, collection o altri tipi di liste di elementi), come è quello restituito da getElementsByTagName(), è definito in base 0, cioè il primo elemento ha indice 0 e non 1. Non è sempre così ma convenzionalmente questa è la norma.
- fattore umano - d'altra parte, per una questione di leggibilità del codice, i programmatori usano spesso definire il primo elemento, di una determinata lista, in maniera più "umana" partendo da 1 anziché 0.
Per cui da script sarà necessario "correggere" opportunamente questa differenza, come è stato fatto, per poter comparare correttamente i valori considerati.
Non ti nego che ci sono svariati modi (anche più stringati, ottimizzati, nonché più scalabili) per ottenere lo stesso risultato ma con un codice magari più pulito (senza voler togliere nulla a quella guida).
PS: consiglio di utilizzare titoli maggiormente autodescrittivi quando apri nuove discussioni.
PPS: giusto per informazione, purtroppo c'è attualmente qualche problema con la piattaforma del forum, per cui non fare caso ad eventuali errori di codifica delle lettere accentate quando posti sul forum.



Rispondi quotando