Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453

    controllo su campi input ripetuti

    ciao a tutti!

    ho dei campi input di uno stesso form: dovrei controllare che, una volta scritto un valore in un campo (quindi una volta deselezionato, prima di inviare il form) questo valore non sia già presente in nessun altro campo input di questo form.

    Quindi, se scrivo "ciao" in un campo, deve dare errore se c'è un campo input nel form che ha già come valore "ciao"... altrimenti tutto liscio...!

    come si puo' fare?

    grazie!

  2. #2
    eccoti un esempio:
    codice:
    <html>
    <head>
    <script type="text/javascript">
    
    function controllo(str) {
        var t = 0;
        var elms = document.getElementsByTagName('input');
        for (var i = 0; i < elms.length; i++) {
            if (elms[i].value.indexOf(str)!=-1) {
                t++;
                if (t > 1) {
                    alert('il carattere \'ciao\' deve comparire solo una volta in tutti i campio!');
                    elms[i].focus();
                }
            }
        }
    }
    </script>
    </head>
    <body>
    
    <input type="text" value="" onblur="controllo('ciao')" />
    <input type="text" value="" onblur="controllo('ciao')" />
    <input type="text" value="" onblur="controllo('ciao')" />
    <input type="text" value="" onblur="controllo('ciao')" />
    <input type="text" value="" onblur="controllo('ciao')" />
    
    </body>
    </html>

  3. #3
    non credo Kilin chiedesse una cosa del genere: i campi devono avere tutti valori differenti (e tali valori non sono predefiniti, come 'ciao').

    ciao

  4. #4
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453
    beh con qualche piccola modifica invece è proprio lui! ecco come ho cambiato lo script, se puo' servire a qualcuno... grazie!

    codice:
    <html>
    <head>
    <script type="text/javascript">
    
    function controllo(str) {
        var t = 0;
        var elms = document.getElementsByTagName('input');
        for (var i = 0; i < elms.length; i++) {
            if (elms[i].value.indexOf(str)!=-1) {
                t++;
                if (t > 1) {
                    alert('Hai già inserito \''+str+'\'!');
                    elms[i].value = '';
                    elms[i].focus();
                }
            }
        }
    }
    </script>
    </head>
    <body>
    
    <input type="text" value="" onblur="controllo(this.value)" />
    <input type="text" value="" onblur="controllo(this.value)" />
    <input type="text" value="" onblur="controllo(this.value)" />
    <input type="text" value="" onblur="controllo(this.value)" />
    <input type="text" value="" onblur="controllo(this.value)" />
    
    </body>
    </html>

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.