Foros del Web » Programando para Internet » Javascript »

Obtener nombre del formulario actual

Estas en el tema de Obtener nombre del formulario actual en el foro de Javascript en Foros del Web. Hola gente. Teniendo en cuenta que los CSS no cambian mucho que digamos la apariecia de ciertos tipos de imputs en un form, como ser ...
  #1 (permalink)  
Antiguo 22/07/2005, 09:26
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
Mensaje Obtener nombre del formulario actual

Hola gente.

Teniendo en cuenta que los CSS no cambian mucho que digamos la apariecia de ciertos tipos de imputs en un form, como ser el caso de radiobuttons op checkboxs, estoy haciendo un script que pasandole imagenes de un radiobuton activo y otro desactivado, muestre estos en lugar de los comunes.

Logré hacer que funcione con las cantidad de radiobutton que se le antoje a cualquier, pero hay unas dos cositas que estan escritos literalmente y quiero que pueda ser mas usable para cualquier caso.

Para esto, una de los cosas que necesito es, estando yo metido en un formulario cualquiera, en una etiqueta cualquiera, hay forma de pasar por parametro a la funcion que llamo un window.document.this.name (eso no funciona)?

Necesito obtener el nombre del formulario desde dentro del formulario. eso para no pasar "nombre_formulario".

Por otro lado, si alguien ya intento hacer esto o sabe de alguna funcion ya prediseñada ¿era que me puede dar una manito?

Gracias
  #2 (permalink)  
Antiguo 22/07/2005, 12:03
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola, micayael
Yo diría que lo que quieres se consigue con
this.form
que pasa una refrencia al formulario como objeto -no es su nombre, pero seguro que te servirá, pues en la función bastará con que hagas referencia directa al parámetro, y te ahorras window.document.forms[nombreDelFormulario]

Si realmente necesitas el nombre, supongo que podrá funcionar con
window.document.this.form.name

Ejemplo:
Código HTML:
<head><script>
function colorea(f) {
	f.style.backgroundColor="red"
}
function calcula(x) {
	return x*x
}
</script></head>
<body>
<form>
<input type="button" value="Colorear el formulario" onClick="colorea(this.form)">
<br>
Calcula el cuadrado de
<input type="text" name="entrada">
<input type="button" value="Calcular" onClick="this.form.salida.value=calcula(this.form.entrada.value)">
<input type="text" name="salida">
<br>

</form>
</body> 
__________________
Angel :cool:

Última edición por angsanchez; 22/07/2005 a las 12:11
  #3 (permalink)  
Antiguo 22/07/2005, 14:21
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
Hola angsanchez.

Eso si funciona. Pero el problema que se me presenta es que la sentencia no esta en un input del formulario. Seria algo asi:

<form name="form1">
<input type="text" name="txt">
<a href="javascript:;" onClick="return false();"> <img src="imagen.gif" id="img" onClick="funcionEnCuestion(aqui necesito hacer referencia al form)"> </a>
</form>

Como lo notarás, si es parte del formulario si se puede pero cuando hablamos de una etiqueta que no es input no es tan sencillo. Eso es para no poner en duro el nombre del formulario y que se pueda reutilizar mas facilmente.

Ya funciona todas las funciones que cree para lo que queria. Ahora necesito maximizar su reusabilidad.

Gracias de todos modos angsanchez.
  #4 (permalink)  
Antiguo 23/07/2005, 15:41
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Creo que tengo la solucion, aunque no estoy seguro. Es mediante DOM. vamos escalando hacia arriba en el arbol, hasta encontrar una etiqueta FORM. Entonces alertamos su nombre, por ejemplo:

Código PHP:
<html>
<
head></head>
<
body>


<
script type="text/javascript"
function 
funcionEnCuestion(obj) {
    do {
        
obj=obj.parentNode;
    } while(
obj.tagName!="FORM");
    
alert(obj.name);
    return 
false;
}
</script>

<form name="form1">
    <input type="text" name="txt"><br />
    <a> <img src="imagen.gif" id="img" onClick="funcionEnCuestion(this)"> </a>
</form>


</body>
</html> 
La funcion tambien vale para links y tal:

Código PHP:
<html>
<
head></head>
<
body>


<
script type="text/javascript"
function 
funcionEnCuestion(obj) {
    do {
        
obj=obj.parentNode;
    } while(
obj.tagName!="FORM");
    
alert(obj.name);
    return 
false;
}
</script>

<form name="form1">
    <input type="text" name="txt"><br />
    <a href="#" onclick="funcionEnCuestion(this)"> <img src="imagen.gif" id="img" onClick="funcionEnCuestion(this)"> </a>
</form>


</body>
</html> 

Si falta algun detalle, lo sacaremos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 25/07/2005, 14:53
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
Eso estuvo muy bueno derkenuke.

Te felicito. Ya estaba pensando que no se podia.

Pero de que son esos atributos? "parentNode", "tagName"

Nunca los había visto. Donde estarían en la jerarquía de objetos?
  #6 (permalink)  
Antiguo 25/07/2005, 15:40
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Esos atributos son parte del DOM. El dom es una manera de referenciar los objetos del documento (Document Object Model). Los atributos parentNode y tagName (y muchos otros, nextSibling, hasAttributes()...) son aplicables a cada etiqueta html.

Busca sobre DOM en google, veras que es una eficaz manera de moverte por la jerarquia HTML de un documento.

La jerarquia viene a ser
WINDOW - DOCUMENT - ELEMENT
a partir de element, ya se puede usar estos metodos de parentNode, etc. De esta manera puedes moverte por las celdas de una tabla, por todas las etiquetas <LI> de un HTML, o hacer por ejemplo lo que acabamos de hacer aqui
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #7 (permalink)  
Antiguo 25/07/2005, 17:48
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
¡Muy buena respuesta derkenuke!
  #8 (permalink)  
Antiguo 26/07/2005, 07:55
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
Gracias maestro. Como dice un_tio (no es un familiar mio jejejeje) un respuesta muy profesional.

Con eso logro hacer ya mis propios componentes. Todos excepto las listas deplegables.
Hice una prueba con la interfaz del netscape. Solo que hasta ahora tengo toda la compatibilidad solo con explorer en algunos de ellos.

Por lo menos en radio button creo que lo tengo en la mayoria.
Lo subo para que lo vean y me den sus opiniones
http://www.granodemostaza.org/tmp/menu.htm

Si por ahi alguien tiene ideas sobre el tema en especial sobre listas desplegables acepto cualquier aporte.

Gracias a todos
  #9 (permalink)  
Antiguo 26/07/2005, 12:15
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Con las listas desplegables no funciona?? [te refieres a los <select> verda?]

Uhmmm. Pon algun ejemplo a ver. No deberia darte problemas..
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #10 (permalink)  
Antiguo 26/07/2005, 13:18
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
Noooooo. No me refiero a que no funciona tu ejemplo con los select.

Resulta ser que lo que quiero es hacer mis propios componentes con un poco más que CSS. Por ejemplo con los radio buttons uso una imagen para off y otra para on.

El componente que falta es el select. Y con solo CSS no hay muchos cambios. Quiero hacer algo más fuera de lo común.

Estuve investigando sobre el tema de DOM derkenuke y simpre que encuentro algo de DOM me habla también de DHTML. Hay alguna diferencia entre esos dos?
aqui http://msdn.microsoft.com/library/default.asp hay unas explicaciones extensisimas sobre el tema pero está todo en inglés por lo que me voy a pasar toda la vida jeje.

Sabes de algun buen manual en castellano? La mayoría de los que encuentro están en ingles y los que no solo dan una pequeña referencia
  #11 (permalink)  
Antiguo 26/07/2005, 14:40
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
Actualizo la direccion:
http://msdn.microsoft.com/library/de...ctions/all.asp

Esto esta buenisimo. A microsoft se le tendria que ocurrir hacer una version en castellano y lo peor es que no se puede bajar el documento
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 04:08.