Foros del Web » Programando para Internet » Javascript »

Controlar el "value" de un objeto dinamico TextArea

Estas en el tema de Controlar el "value" de un objeto dinamico TextArea en el foro de Javascript en Foros del Web. Buenas Uso un editor WYSIWYG para insertar en las web que hago para permitir a los clientes editar ciertas páginas. Este sistema crea un objeto ...
  #1 (permalink)  
Antiguo 16/07/2008, 01:44
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Controlar el "value" de un objeto dinamico TextArea

Buenas

Uso un editor WYSIWYG para insertar en las web que hago para permitir a los clientes editar ciertas páginas. Este sistema crea un objeto tipo TextArea en donde gracias a las herramientas se le da formato.

El problema nace cuando quiero controlar antes de hacer el submit al formulario si el se ha escrito o no para avisar que ese campo es obligatorio de rellenar. En un TexArea común en JavaScript controlo su "value" con:

Código:
document.formulario.texto.value != ""
Pero ahora como se crea dinamicamente pues no se como manejarlo.

Espero que me haya explicado bien.

Gracias y un saludo.
  #2 (permalink)  
Antiguo 16/07/2008, 01:52
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 10 meses
Puntos: 25
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Cita:
Iniciado por xenon254 Ver Mensaje
[...]Pero ahora como se crea dinamicamente pues no se como manejarlo.[...]
¿A qué te refieres con que se crea dinamicamente? ¿qué se crea en tiempo de ejecución mediante JavaScript?

Si es así, debería dar igual. Al preguntar en el onsubmit o en el onclick de "enviar" por document.nombreFormulario.nombreTextarea.vale debería funcionar...

asegurate de que el textarea tiene nombre, porque si usas algún tipo de herramienta prefabricada para generar el textarea dinamcamente, a lo mejor lo que le pone es ID (es lo suyo, de hecho), así que con el nombre no podrías acceder al campo del formulario.

Si el textarea tiene ID podrás acceder a él con:
Código PHP:
document.getElementById('idTextarea').value 
Comprueba si tiene ID en lugar de name.

Un saludo,
eContento
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #3 (permalink)  
Antiguo 16/07/2008, 02:09
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Buenas

Gracias por tu atención eContento.

He probado ahora también con el ID y tampoco me lo reconoce. Bien es cierto que lo crea con PHP pero hay otros elementos que provienen del mismo lenguaje y con javascript los controlo, aunque no es el mismo caso.

Saqué el nombre que usa el control y es el que estaba usando hasta ahora.

Es extraño, como si no lo encontrase...
  #4 (permalink)  
Antiguo 16/07/2008, 02:24
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 10 meses
Puntos: 25
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Cita:
Iniciado por xenon254 Ver Mensaje
[...]Es extraño, como si no lo encontrase[...]
Vamos a intentar solucionar tu problema...

Pega aquí el código fuente que ha generado la página PHP, y el javascript si está en un archivo externo...

Un saludete
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #5 (permalink)  
Antiguo 16/07/2008, 02:28
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Gracias de nuevo por tu atención

Creador:
Código:
 <?php
$oFCKeditor = new FCKeditor('texto') ;
$oFCKeditor->ToolbarSet = 'Basic';
$oFCKeditor->Height		= '200';
$oFCKeditor->BasePath   = '/admin/fckeditor/' ;
$oFCKeditor->Create() ;
?>
Control:
Código:
<script language="javascript" type="text/javascript">  
	function validar() {  
		if( document.formulario.fecha.value == "" || document.formulario.titular.value == "" || document.formulario.imagen.value == "" || document.formulario.texto.value == "")
			alert("Por favor complete los campos");  
		else
		    document.formulario.submit();
} </script>
  #6 (permalink)  
Antiguo 16/07/2008, 02:53
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 10 meses
Puntos: 25
De acuerdo Respuesta: Controlar el "value" de un objeto dinamico TextArea

Bueno, el asunto es que usas el FCKEditor.

Da igual desde qué lenguaje lo uses, PHP, JavaScript, o ASP. NET, al final crea un objeto en el árbol DOM de la página que se integra con JavaScript.

Así que tendrías que recuperar la instancia del FCKEditor y obtener el HTML que genera por detrás... Creo recordar que aunque lo dejes vacío, el código suele meter un <p>. Echale un vistazo...

Código PHP:
<script language="javascript" type="text/javascript">  
    function 
validar() {  
        var 
oEditor FCKeditorAPI.GetInstance('texto');
        var 
fckTexto oEditor.getHTML();

        
document.formulario;

        if(
f.fecha.value == "" || f.titular.value == "" || f.imagen.value == "" || fckTexto == "")
            
alert("Por favor complete los campos");  
        else
            
f.submit();
</script> 
Tienes más información sobre el API de JavaScript del FCKEditor en:
http://docs.fckeditor.net/FCKeditor_...JavaScript_API

Espero que así te funcione.
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #7 (permalink)  
Antiguo 16/07/2008, 03:05
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Buenas

Curioso

Pero tengo que quitar estas dos lineas para que salten los avisos de que faltan cuadros por rellenar
var oEditor = FCKeditorAPI.GetInstance('texto');
var fckTexto = oEditor.getHTML();
  #8 (permalink)  
Antiguo 16/07/2008, 04:31
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 10 meses
Puntos: 25
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Cita:
Iniciado por xenon254 Ver Mensaje
Buenas

Curioso

Pero tengo que quitar estas dos lineas para que salten los avisos de que faltan cuadros por rellenar
var oEditor = FCKeditorAPI.GetInstance('texto');
var fckTexto = oEditor.getHTML();

Bien, mea culpa... El Método es GetHTML(), con mayúsculas la "G".

Si no es eso, es que tu instancia no se llama así, o que llamas a la función antes de que se instancie el FCKEditor.

Envía el HTML generado por PHP, no el código PHP.
A lo mejor ahí podemos averigüar más cosas.
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #9 (permalink)  
Antiguo 16/07/2008, 04:49
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Únicamente decir que muchas gracias eContento

Funciona a las mil maravillas!!
  #10 (permalink)  
Antiguo 16/07/2008, 04:55
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 10 meses
Puntos: 25
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Cita:
Iniciado por xenon254 Ver Mensaje
Únicamente decir que muchas gracias eContento

Funciona a las mil maravillas!!
No hay de qué. Ya sabes que "Zamora no se ganó en una hora"...


Y para la próxima, mira la consola de error de Firefox... aporta mucha información y te ayuda a localizar los errores de JavaScript muy rápidamente.

Un saludo
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #11 (permalink)  
Antiguo 16/07/2008, 05:05
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Cita:
Iniciado por eContento Ver Mensaje
No hay de qué. Ya sabes que "Zamora no se ganó en una hora"...


Ahora solo falta averiguar como meter dentro de un "echo" de PHP las comillas simples de la linea:

Código:
var oEditor = FCKeditorAPI.GetInstance('texto');
Y aunque las he sustituido con comillas dobles y tambien con &#39 no he conseguido hacerlo funcionar.
  #12 (permalink)  
Antiguo 16/07/2008, 05:56
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 10 meses
Puntos: 25
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Cita:
Iniciado por xenon254 Ver Mensaje
Ahora solo falta averiguar como meter dentro de un "echo" de PHP las comillas simples de la linea:

Código:
var oEditor = FCKeditorAPI.GetInstance('texto');
Y aunque las he sustituido con comillas dobles y tambien con ' no he conseguido hacerlo funcionar.
¿y por qué quieres meterlo dentro de un echo...???

Cierra el código PHP sigue escribiendo JavaScript y vuelves a abrir PHP para lo que necesites

Código PHP:
[...]
?>
  aquí va mi código JavaScript...
<? php
[...]
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #13 (permalink)  
Antiguo 16/07/2008, 06:06
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Porque esta dentro de un IF de PHP
  #14 (permalink)  
Antiguo 16/07/2008, 06:51
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 10 meses
Puntos: 25
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Cita:
Iniciado por xenon254 Ver Mensaje
Porque esta dentro de un IF de PHP
Eso da igual.

Pero si quieres escapar las comillas simples, lo único que tienes que hacer es poner la contrabarra delante de cada comilla

Código:
<?php echo "var oEditor = FCKeditorAPI.GetInstance(\'texto\');"; ?>
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #15 (permalink)  
Antiguo 16/07/2008, 08:11
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Buenas

También lo había probado pero en este caso no me reconoce que hay contenido en "texto"

no acabo...
  #16 (permalink)  
Antiguo 17/07/2008, 06:45
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 10 meses
Puntos: 25
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Cita:
Iniciado por xenon254 Ver Mensaje
[...] no acabo...[...]
Buenas,

¿Cómo acabó esto? ¿al final lo pudiste solucionar?
Espero que sí
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #17 (permalink)  
Antiguo 17/07/2008, 06:49
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Código PHP:
<?php echo "var oEditor = FCKeditorAPI.GetInstance('texto');"?>
Código PHP:
<?php echo 'var oEditor = FCKeditorAPI.GetInstance(\'texto\');'?>
Código PHP:
<?php echo "var oEditor = FCKeditorAPI.GetInstance(\"texto\");"?>
Sólo necesitas escapar las comillas si están dentro de otras comillas iguales.

Aunque, el que esté dentro de un if no te obliga a usar echo si no quieres:


Código PHP:
<?php if(condicion) { ?>
var oEditor = FCKeditorAPI.GetInstance('texto');
<?php ?>
  #18 (permalink)  
Antiguo 17/07/2008, 08:13
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Controlar el "value" de un objeto dinamico TextArea

Buenas

Gracias Venkman por tus indicaciones. La verdad esque el error lo tenía al seguir comprobando un campo que ya no hacia falta. De todas las maneras lo último que me has indicado me ha servido de bastante para otra cosa.

De todas las maneras he dejado otra duda que ahora necesito solventar. Esta en este hilo y agradecería mucho tu colaboración.

http://www.forosdelweb.com/f18/const...iables-606714/

Un saludo
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 12:28.