2016-02-18 16 views
5

Ho letto diversi post, tra cui this e this, ma non riesco a ottenere il campo di input da cancellare dopo l'invio. Qual è il modo più semplice/elementare per farlo?Come resettare il campo di inserimento? jQuery

Attualmente ho questo:

$(document).ready(function(){ 
    $('form[name=checkListForm]').on('submit', function() { 
      // prevent the form from submitting 
      event.preventDefault(); 
      var toAdd = $(this).find('input[name=checkListItem]').val(); 
      $('.list').append("<div class='item'>" + toAdd + "</div>") 
      $('input[name=checkListItem').reset(); 
     }); 
}); 

mio HTML è:

<!DOCTYPE html> 
<html > 
    <head> 
    <meta charset="UTF-8"> 
    <link rel="stylesheet" href="stylesheet.css">  
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
    <script type="text/javascript" src="script.js"></script> 
    </head> 
    <body> 
    <h2>To Do</h2> 
    <form name="checkListForm"> 
     <input type="text" name="checkListItem" /> 
     <button type="submit" id="button">Add!</button> 
    </form> 
    <br/> 
    <div class="list"></div> 
    </body> 
</html> 
+0

Una riga di codice per gestire tutti i campi '$ (FormSelector) [0] .Reset();' –

risposta

11

Invece di ripristino, è sufficiente impostare un valore vuoto nel campo di immissione di utilizzare questo pezzo di codice:

$('input[name=checkListItem').val(''); 

Per ripristinare tutti gli ingressi in un particolare modulo è anche possibile utilizzare il seguente codice (utilizzandoSelettore):

$('form :input').val(''); 
+0

Grazie, che hanno lavorato. Come una domanda a parte, sai perché il selettore dovrebbe essere 'input [nome = checkListItem' e non' form [nome = checkListForm'? – AlanH

+0

@AlanH: Perché vuoi impostare il valore di input come vuoto, non come modulo. – Przemek

+0

@AlanH: questo perché il selettore 'input' seleziona fondamentalmente un controllo di forma e ha un valore che può essere impostato, mentre' '$ ('form')' 'significa fondamentalmente che stai selezionando un elemento html stesso piuttosto che un controllo di forma, poiché '$ ('form')' non ha un attributo value diverso dal selettore 'input', vedi anche la mia ultima modifica alla risposta. – stark

0

Questo dovrebbe funzionare, (l'ho provato personalmente).

$(document).ready(function(){ 
    $('form[name=checkListForm]').on('submit', function() { 
      //other code 
      $('input[name=checkListItem]').val("") 
     }); 
}); 
0

Questo ha funzionato per me; Poche modifiche a. Io uso function(e) e e.preventDefault() e usato $('input[name=checkListItem').val(''); invece di azzeramento()

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
<script> 

    $(document).ready(function(){ 
     $('form[name=checkListForm]').on('submit', function(e) { 
       // prevent the form from submitting 
       e.preventDefault(); 
       var toAdd = $(this).find('input[name=checkListItem]').val(); 
       $('.list').append("<div class='item'>" + toAdd + "</div>") 


       $('input[name=checkListItem').val(''); 
      }); 
    }); 
</script> 

<h2>To Do</h2> 
<form name="checkListForm"> 
    <input type="text" name="checkListItem" /> 
    <button type="submit" id="button">Add!</button> 
</form> 
<br/> 
<div class="list"></div> 
0

Possiamo scrivere dopo la presentazione.

document.getElementById("myform").reset(); 
Problemi correlati