Hola, disculpen si la pregunta es tonta, tengo inputs que al refrescar la pantalla se quedan con el valor anterior que ingrese.
Estoy utilizando jquery, asi que se me ocurrio esto y funciona, pero me pregunto si hay alguna forma óptima, pues si tuviera muchos campos input limpiarlos manualmente no me convence.
$(document).ready(function() {
$('#campo1').attr('value', '');
$('#campo2').attr('value', '');
//...
} );
También podria hacer un bucle, pero no sé si es lo más eficiente.
Saludos.
$(":text").each(function(){ $($(this)).val(''); });
Gracias, @Unlock.
También me sirve pero campos ocultos
$(document).ready(function() {
$(":hidden").each(function(){ $($(this)).val(''); });
} );
Espero que sea lo más eficiente ;D y que no haya alguna etiqueta que evite la caché.
Saludos.
También puedes utilizar simplemente:
$(':text,:hidden').val('');
Como soy un fan de la velocidad hize una prueba con puro javascript vs jquery :P
$(function(){
console.time('tiempo');
$(':text,:hidden').val('');
console.timeEnd('tiempo');
});
VS
$(function(){
console.time('tiempo');
limpiar();
console.timeEnd('tiempo');
});
var limpiar = function(){
var elementos = document.getElementsByTagName('input');
for(var i=0; i<elementos.length; ++i){
var attr = elementos[i].getAttribute('type');
if(attr==='text'||attr==='hidden'){
elementos[i].value = '';
continue;
} else {continue; }
}
};
10 campos de texto + 5 de tipo hidden.
Metodo con jquery - tiempo: 9ms
Metodo con javascript puro - tiempo: 1ms
Y para hacer un poco de spam te dejo una entrada en mi blog que escribi hace tiempo.
"$.each" de jQuery vs "for" de javascript
http://www.drvydev.com/blog/each-de-jquery-vs-for-de-javascript-sorpresa/
Saludos
Gracias, #!drvy ahora trataré de usar más javascript puro cuando de bucles y limpiar inputs se trate ;D. Me ahorro code con jquery pero a veces es preferible javascript puro.
Saludos.