2011-08-23 12 views
6

que quieren cambiar el valor predeterminado de un cuadro de entrada de forma que cuando se restablece el formulario, el valor se mantiene.¿Cómo configuro el valor predeterminado de un cuadro de entrada usando jQuery?

Tengo el siguiente código que establece un valor usando jQuery pero a medida que se pulsa reset, el valor se convierte en el inicial.

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

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

Respuesta

2

Restablecer borra todos los valores de la forma (comportamiento por defecto). Si desea que los valores sean visibles nuevamente, debe volver a configurarlos. Por lo tanto, debe llamar a un método al hacer clic en el botón de reinicio y rellenar el formulario nuevamente.

0

Trate

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

Tienes que establecer el "valor" atributo de #email elemento, no el valor en sí.

$("#email").attr("value", "New value"); 
+0

Puede establecer el valor directamente con .val() usted no tiene que establecer el atributo mismo .val() es básicamente un alias para .attr ("valor", "nuevo valor"); – Henry

+5

No, no es un alias. Aquí está .fn.val: this.value = val; // no modifica DOM y aquí está attr: elem.setAttribute (name, "" + value); // modifica DOM –

+0

Esta es una mejor respuesta que la aceptada. Aclamaciones. – Chad

1

Restablecer borra por defecto un formulario, pero si desea controlar este comportamiento usted mismo aquí es cómo lo haría. Necesitas usar .val() Aquí hay algunos ejemplos de hacer un reinicio de un solo cuadro y múltiples cajas usando un conjunto envuelto.

Ejemplo: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> 
Cuestiones relacionadas