Foros del Web » Programando para Internet » Javascript »

Limpiar formulario: setAttribute("value", "") - VS - value=""

Estas en el tema de Limpiar formulario: setAttribute("value", "") - VS - value="" en el foro de Javascript en Foros del Web. Código: function limpiar_formulario(origen) { var formulario = document.getElementById(origen); for (var i=0; i <= formulario.elements.length-1;i++) { if (formulario.elements[i].type != "button") { //formulario.elements[i].setAttribute("value", ""); formulario.elements[i].value = ""; ...
  #1 (permalink)  
Antiguo 22/01/2010, 09:29
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 20 años, 6 meses
Puntos: 4
Limpiar formulario: setAttribute("value", "") - VS - value=""

Código:
function limpiar_formulario(origen)
{
	var formulario = document.getElementById(origen);
	for (var i=0; i <= formulario.elements.length-1;i++) 
			{
				if (formulario.elements[i].type != "button")
				{
					//formulario.elements[i].setAttribute("value", "");
					formulario.elements[i].value = "";
				}
			}
}
Si utilizo setAttribute("value", ""); no se borran los campos que el usuario haya modificado en ese momento, por el contrario si se borran los que estén pre-cargados (mediante acceso a una BD) en el formulario, supongo que estos últimos si están dentro de la propiedad value del html....

Sin embargo si utilizo formulario.elements[i].value = ""; funciona en ambos casos, que es lo que inicialmente se pretende.

¿Por qué ocurre esto?
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."
  #2 (permalink)  
Antiguo 22/01/2010, 10:41
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 11 meses
Puntos: 45
Respuesta: Limpiar formulario: setAttribute("value", "") - VS - value=""

Buenas,

yo diría que tiene que ver con la jerarquía de las clases de la API del DOM . Tu estás haciendo referencia a los elementos del formulario como elementos del array elements[ ] que es una propiedad del objeto form que está dentro de HTMLDocument que a su vez está dentro de Document.

Sin embargo la definición de las propiedades para los atributos estandar (algunas, otras tienen su propia interfaz, pero también dentro de Element) se encuentra en la interfaz HTMLElement que esta dentro de Element pero no de Document.

El método SetAttribute también pertecene a Element y tu lo estabas mezclando con Document. Por otro lado como las propiedades de los atributos estandar ya están predefinidas solo se deberia usar SetAttribute para establecer atributos no estandar y para cambiar los ya definidos hacerlo a través de la propiedad correspondiente como has hecho con value en:

formulario.elements[ i ].value = '';
  #3 (permalink)  
Antiguo 22/01/2010, 13:07
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 20 años, 6 meses
Puntos: 4
Respuesta: Limpiar formulario: setAttribute("value", "") - VS - value=""

No he entendido lo que comentas sobre la interfaz HTMLDocument dentro de Document y HTMLElement dentro de Element ¿podrías facilitarme algún enlace sobre el tema o alguna otra explicación?

Gracias.
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."

Etiquetas: limpiar, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:01.