2011-08-23 10 views
6

Desidero modificare il valore predefinito di una casella di input in modo che quando resetto il modulo, il valore rimanga.Come imposto il valore predefinito di una casella di input usando jQuery?

Ho il seguente codice che imposta un valore utilizzando jQuery ma quando si preme reset, il valore diventa quello iniziale.

<form> 
Email: <input type="text" id="email" value="old value" /> 
<input type="reset" value="reset" /> 
</form> 

$(function(){ 
    $("#email").val("New value"); 
}); 

risposta

2

Reset cancella tutti i valori del modulo (comportamento predefinito). Se si desidera che i valori siano nuovamente visibili, è necessario impostarli nuovamente. Quindi è necessario chiamare un metodo onclick del pulsante di ripristino e compilare nuovamente il modulo.

0

Prova

$('input[type="reset"]').click(function(){ 
$("#email").val("New value"); 
}); 
22

È necessario impostare "valore" attributo #email elemento, non il valore stesso.

+0

È possibile impostare il valore direttamente con .VAL() non dovete impostare l'attributo da soli .VAL() è fondamentalmente un alias per .attr ("valore", "nuovo valore"); – Henry

+5

No, non è un alias. Ecco .fn.val: this.value = val; // non modifica DOM e qui è attr: elem.setAttribute (nome, "" + valore); // modifica DOM –

+0

Questa è una risposta migliore di quella accettata. Saluti. – Chad

1

Ripristina di default cancella un modulo ma se si desidera controllare questo comportamento da soli, ecco come si farebbe. È necessario utilizzare .val() Di seguito sono riportati alcuni esempi di come eseguire il reset di una casella singola e di più riquadri utilizzando un set avvolto.

Esempio:http://jsfiddle.net/HenryGarle/ZTprm/

<b>Reset Single</b> 

<input type="text" id="TextBox"> 
<button id="reset">Reset</button> 

<hr> 
<b>Reset Many</b> 

<div id="Many"> 
<input type="text" value="1"> 
<input type="text" value="5"> 
<input type="text" value="2"> 
    <button id="ResetMany">Reset</button> 
</div> 


<script> 
// Reset single 
$("#reset").click(function (e) { 
    $("#TextBox").val("Value"); 
}); 


// Resets many given a selector 
// Could be a form, containing div 
$("#ResetMany").click(function (e) { 
    var inputs = $("input", "#Many"); 

    for (var i = 0; i < inputs.length; i++) { 
     $(inputs[i]).val("Value"); 
    } 

}); 
</script> 
Problemi correlati