Loop se tutte le caselle di input e chiaro

Come posso, utilizzo di javascript, loop attraverso tutte le caselle di testo in una pagina e cancellare i dati all’interno di essi (che li rende tutti vuota)?

La parte che non sai come fare? Selezionare, scorrere l’insieme, o chiaro? In altre parole, che cosa hai provato?

OriginaleL’autore Jason Kelly | 2012-11-17

6 Replies
  1. 14

    Provare questo codice:

    $('input').val('');

    Il loop su tutte le input elementi e l’impostazione di un valore stringa vuota.
    Qui è una demo: http://jsfiddle.net/maqVn/1/

    E, naturalmente, se non si dispone di jQuery:

    var inputs = document.getElementsByTagName('input');
    for (var i = 0; i < inputs.length; i += 1) {
        inputs[i].value = '';
    }​​​​

    Dal momento che io preferisco lo stile funzionale, è possibile utilizzare:

    Array.prototype.slice.call(
      document.getElementsByTagName('input'))
      .forEach(function (el) {
        el.value = '';
    });
    Come fai a sapere jQuery è caricato?
    Fisso, buona nota!
    se jQuery è consentito: $('input').val('');​ sarebbe sufficiente.

    OriginaleL’autore Minko Gechev

  2. 6
    [].forEach.call(document.getElementsByTagName('input'), function(e){
      e.value = '';
    });

    Edit: Se si vuole prendere una textarea e di altri elementi, è possibile utilizzare querySelectorAll:

    [].forEach.call(
      document.querySelectorAll('input, textarea'), 
      function(e) { e.value = ''; }
    );
    Questa è la risposta migliore. In modo sintetico e leggibile!

    OriginaleL’autore elclanrs

  3. 3
    var inputs = document.getElementsByTagName("input"), 
        clearTypes = { "text" : 1, "password" : 1, "email" : 1 }, //etc. you fill this in
        i = inputs.length, 
        input;
    
    while (i) {
        if (clearTypes[(input = inputs[--i]).type]) {
            input.value = "";
        }
    }

    OriginaleL’autore Matt

  4. 1

    Per registrare un’alternativa senza JavaScript, HTML elemento <input type="reset" /> di cancellare tutti i campi della form. In alcuni casi può essere sufficiente.

    OriginaleL’autore Erick Petrucelli

  5. 1

    Senza jquery:

    var list = document.getElementsByTagName('input');
    for(var i = 0; i < list.length; i++) {
      if(list[i].type == 'text' || list[i].type == 'password')
        list[i].value = '';
    }
    Non utilizzare for-in per questo. Include più di un semplice numerico, gli indici di iterazione.
    Potresti spiegare un po ‘ di più? Che cosa si intende per “più di indici numerici’? Potresti farmi un esempio? Questo è il modo che ho di solito per risolvere tali problemi, ma sarei felice se tu mi mostri un modo migliore.
    JavaScript per-in generale enumeratore. Esso comprenderà ogni enumerabile di proprietà sull’oggetto, sia direttamente sull’oggetto, o ereditato. Quando viene utilizzato su un oggetto Array, non si limita solo alla numerico indici. Inoltre, non è garanzia di un particolare ordine di enumerazione. Se si console.log(i); nel ciclo in FireFox, si otterrà gli indici, ma poi anche length, item e namedItem. È meglio fare un’iterazione che è vincolato dal codice solo numerico indici. Standard for loop è il modo tipico. for(var i = 0; i < list.length; i++) {
    Grazie! Io correzione e penso di farlo in futuro.

    OriginaleL’autore AmShaegar

  6. 0

    Si è in grado di fare qualcosa di simile pta:

    <script>   
     e = document.getElementsByTagName('input');
    
        for (i = 0; i < e.length; i++){
        if (e[i].type != 'text') continue;
    
        e[i].value = '';
        }
    </script>

    Modifica: aggiunto escludere input che i loro tipi di testo!

    OriginaleL’autore SaidbakR

Lascia un commento