2010-01-04 8 views

risposta

10

Per tutti ..

la funzione di reset non imposta di tutto per '' (stringa vuota)

è ripristinato ai valori iniziali .. (immagazzinate nella attributo value, o l'opzione selezionata ecc ..)

Se si desidera mantenere le caratteristiche di ripristino di default allora si dovrebbe

  1. ottenere tutti gli elementi <select>
  2. ottenere i loro valori attualmente selezionati
  3. resettare il modulo come attualmente fa
  4. azzerare il selezionato

esempio:

<script type="text/javascript"> 
    $(document).ready(
    function(){ 
    $("#resetbutton").click(
    function(){ 
    var values = []; 
    var selected = $("select").each(
     function(){ 
     values.push($(this).val()); 
     }); 
    this.form.reset(); 
    for (i=0;i<selected.length;i++) 
     $(selected[i]).val(values[i]); 
    }); 
    } 
); 
</script> 
6

che non è jQuery, è javascript nativo. [0] mette in evidenza l'elemento effettivo DOM, quindi è la stessa come:

document.getElementById('myform').reset(); 

reset() è dotato di un browser attuazione resetta l'intero modulo. Se è necessario ripristinare i singoli tipi di modulo, provare qualcosa di simile:

$('#myform :text').val(''); 

Potete vedere tutti i selettori form che trovi qui: http://docs.jquery.com/Selectors

0

Si può fare un reset falso impostando i valori da una stringa vuota e il ripristino del caselle di controllo usando la risposta di David (o questo more complete one). Si potrebbe anche provare la memorizzazione del valore di ogni elemento di selezione prima di ripristinare la forma e quindi ripristinare i valori dopo:

var myform = $('#myform'); 
var selects = $('select', myform); 

// Store each current value 
selects.each(function() { 
    $(this).data('previous', $(this).val()); 
}); 

myform[0].reset(); 

// Restore the values 
selects.each(function() { 
    $(this).val($(this).data('previous')); 
}); 
0

Per qualsiasi motivo, la risposta corretta di David ha restituito il mio Google Chrome js. E 'dicendo:

Uncaught TypeError: Proprietà 'Reset' dell'oggetto # non è una funzione

...così ho deciso di provare una soluzione un po 'diversa:

  • Dare pulsanti di reset browser nativo attributi "nascosto" e impostare "id":

<input id="resetbutton" type="reset" style="visibility:hidden;" name="reset" value="reset" />

  • Iniziato JQuery "click" evento sul pulsante di ripristino dal collegamento facendo clic:

<a href="#" onclick="$('#resetbutton').click();">Reset</a>

Problemi correlati