Foros del Web » Programando para Internet » Javascript »

Crear un espejo palíndromo de Textareas

Estas en el tema de Crear un espejo palíndromo de Textareas en el foro de Javascript en Foros del Web. Muy buenas, Tengo que entregar unos trabajillos para mañana y bueno, no entiendo que falla en este... Lo que tiene que hacer, que cada vez ...
  #1 (permalink)  
Antiguo 26/03/2010, 12:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 10 meses
Puntos: 13
Crear un espejo palíndromo de Textareas

Muy buenas,

Tengo que entregar unos trabajillos para mañana y bueno, no entiendo que falla en este...

Lo que tiene que hacer, que cada vez que pulses el botón. Que ponga la ultima letra del primer text area en la primera posición del segundo text area.
En la siguiente pulsación, la penultima en la segunda, etc...

De momento estoy intentando que me pase letra a letra sin invertir el string, pero no me lo hace,

tengo el siguiente código

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<title>Espejo Palíndromo</title>
        <script type="text/javascript">
			var longitud = 0;
			var indice = 0;
			var origen = '';
			var destino = '';
			
			function palindromar_caracter(){
				var text_origen = document.getElementById("origen");
            	               var text_destino = document.getElementById("destino");
				origen = text_origen.innerHTML;
				destino = text_destino.innerHTML;
				var letra = origen[indice];
				
				text_destino.innerHTML = destino + origen[indice];
				indice = indice + 1;
				
        		
			}
			
			
		</script>
	</head>
	<body>
		
		<textarea id="origen" name="origen">La ruta natural</textarea>
		<textarea id="Destino" name="destino"></textarea>
		<button onclick="palindromar_caracter();">Palindromar letra</button>
	</body>
</html>
he probado un alert(origen[indice]) y me muestra caracter a caracter correctamente, pero al cambiar el alert por los inner, no hace nada...

Que pasa ?
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #2 (permalink)  
Antiguo 26/03/2010, 13:44
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: Crear un espejo palíndromo de Textareas

Para textarea no se usa innerHTML sino value:
Código PHP:
<form>
<
textarea id="origen" name="origen">La ruta natural</textarea>
        <
textarea id="Destino" name="destino"></textarea>
        <
button onclick="Destino.value=origen.value.split('').reverse().join('').substr(-Destino.value.length+origen.value.length-1); return false;">Palindromar letra</button>
</
form
  #3 (permalink)  
Antiguo 26/03/2010, 13:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Crear un espejo palíndromo de Textareas

Hola

- En la id del textarea destino habías escrito Destino, cuidado que javascript es sensible a mayúsculas y minúsculas
- Necesitabas hacer un split para poder usar el contador

Prueba ahora

Código Javascript:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5.         <title>Espejo Palíndromo</title>
  6.         <script type="text/javascript">
  7.             var longitud = 0;
  8.             var indice = 0;
  9.             var origen = '';
  10.             var destino = '';
  11.            
  12.             function palindromar_caracter(){
  13.                 var text_origen = document.getElementById("origen");
  14.                                var text_destino = document.getElementById("destino");
  15.                 origen = text_origen.innerHTML;
  16. divorigen = origen.split("");
  17.                 destino = text_destino.innerHTML;
  18.                 var letra = divorigen[indice];
  19.                
  20.                 text_destino.innerHTML = destino + origen[indice];
  21.                 indice = indice + 1;
  22.                
  23.                
  24.             }
  25.            
  26.            
  27.         </script>
  28.     </head>
  29.     <body>
  30.        
  31.         <textarea id="origen" name="origen">La ruta natural</textarea>
  32.         <textarea id="destino" name="destino"></textarea>
  33.         <button onclick="palindromar_caracter();">Palindromar letra</button>
  34.     </body>
  35. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 26/03/2010, 13:48
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Crear un espejo palíndromo de Textareas

Cita:
Iniciado por Panino5001 Ver Mensaje
Para textarea no se usa innerHTML sino value:
Código PHP:
<form>
<
textarea id="origen" name="origen">La ruta natural</textarea>
        <
textarea id="Destino" name="destino"></textarea>
        <
button onclick="Destino.value=origen.value.split('').reverse().join('').substr(-Destino.value.length+origen.value.length-1); return false;">Palindromar letra</button>
</
form
Panino yo lo he probado con innerHTML y funciona
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 26/03/2010, 14:00
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: Crear un espejo palíndromo de Textareas

En explorer 8 y en navegadores estandar funciona, pero en Explorer 7 ó - no funcionará ;)
  #6 (permalink)  
Antiguo 26/03/2010, 14:50
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Crear un espejo palíndromo de Textareas

Cita:
Iniciado por Panino5001 Ver Mensaje
En explorer 8 y en navegadores estandar funciona, pero en Explorer 7 ó - no funcionará ;)
Perfecto
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 26/03/2010, 16:06
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Crear un espejo palíndromo de Textareas

Vaya, pues al parecer sí era la mayúscula...
y sin el split me funciona a mi, aunque al acabar las letras el texto me empieza a imprimir undefined (normal)

así

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<title>Espejo Palíndromo</title>
        <script type="text/javascript">
			var longitud = 0;
			var indice = 0;
			var origen = '';
			var destino = '';
			
			function palindromar_caracter(){
				var text_origen = document.getElementById("origen");
            	var text_destino = document.getElementById("destino");
				origen = text_origen.innerHTML;
				var ultima = text_origen.length;
				destino = text_destino.innerHTML;
				var letra = origen[indice];
				
				text_destino.innerHTML = destino + letra;
				indice = indice + 1;
				
        		
			}
			
			
		</script>
	</head>
	<body>
		
		<textarea id="origen" name="origen">La ruta natural</textarea>
		<textarea id="destino" name="destino"></textarea>
		<button onclick="palindromar_caracter();">Palindromar letra</button>
	</body>
</html>
ahora intento coger de final a principio y me imprime undefined todo el rato

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<title>Espejo Palíndromo</title>
        <script type="text/javascript">
			var longitud = 0;
			var indice = 0;
			var origen = '';
			var destino = '';
			
			function palindromar_caracter(){
				var text_origen = document.getElementById("origen");
            	var text_destino = document.getElementById("destino");
				origen = text_origen.innerHTML;
				var ultima = text_origen.length;
				destino = text_destino.innerHTML;
				var letra = origen[ultima - indice];
				
				text_destino.innerHTML = destino + letra;
				indice = indice + 1;
				
        		
			}
			
			
		</script>
	</head>
	<body>
		
		<textarea id="origen" name="origen">La ruta natural</textarea>
		<textarea id="destino" name="destino"></textarea>
		<button onclick="palindromar_caracter();">Palindromar letra</button>
	</body>
</html>
Para que es necesario el split? no comprendo..

Muchas gracias :)
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #8 (permalink)  
Antiguo 26/03/2010, 16:48
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Crear un espejo palíndromo de Textareas

Hola

No le has hecho mucho caso a Panino

Prueba ahora

Código Javascript:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5.         <title>Espejo Palíndromo</title>
  6.         <script type="text/javascript">
  7.             var longitud = 0;
  8.             var indice = 0;
  9.             var origen = '';
  10.             var destino = '';
  11.            
  12.             function palindromar_caracter(){
  13.                 var text_origen = document.getElementById("origen");
  14.                                var text_destino = document.getElementById("destino");
  15.                 origen = text_origen.value;
  16. divorigen = origen.split("").reverse().join("");
  17. if(indice < divorigen.length) {
  18.                 destino = text_destino.value;
  19.                 var letra = divorigen[indice];
  20.                 text_destino.innerHTML = destino + letra;
  21. }
  22.                 indice = indice + 1;
  23.                
  24.                
  25.             }
  26.            
  27.            
  28.         </script>
  29.     </head>
  30.     <body>
  31.        
  32.         <textarea id="origen" name="origen">La ruta natural</textarea>
  33.         <textarea id="destino" name="destino"></textarea>
  34.         <button onclick="palindromar_caracter();">Palindromar letra</button>
  35.     </body>
  36. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 26/03/2010 a las 17:04
  #9 (permalink)  
Antiguo 26/03/2010, 17:19
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 10 meses
Puntos: 13
De acuerdo Respuesta: Crear un espejo palíndromo de Textareas

Cita:
Iniciado por Adler Ver Mensaje
Hola

No le has hecho mucho caso a Panino

Prueba ahora

Código Javascript:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5.         <title>Espejo Palíndromo</title>
  6.         <script type="text/javascript">
  7.             var longitud = 0;
  8.             var indice = 0;
  9.             var origen = '';
  10.             var destino = '';
  11.            
  12.             function palindromar_caracter(){
  13.                 var text_origen = document.getElementById("origen");
  14.                                var text_destino = document.getElementById("destino");
  15.                 origen = text_origen.value;
  16. divorigen = origen.split("").reverse().join("");
  17. alert(divorigen[0]);
  18.                 destino = text_destino.value;
  19.                 var letra = divorigen[indice];
  20.                
  21.                 text_destino.innerHTML = destino + letra;
  22.                 indice = indice + 1;
  23.                
  24.                
  25.             }
  26.            
  27.            
  28.         </script>
  29.     </head>
  30.     <body>
  31.        
  32.         <textarea id="origen" name="origen">La ruta natural</textarea>
  33.         <textarea id="destino" name="destino"></textarea>
  34.         <button onclick="palindromar_caracter();">Palindromar letra</button>
  35.     </body>
  36. </html>

Suerte
Claro que le he hecho caso, por eso mismo preguntaba de qué sirve el split.. EL codigo funciona :D solo que quería intentar terminar mi código,

Bueno asi se queda

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>Espejo Palíndromo</title>
        <script type="text/javascript">
            var longitud = 0;
            var indice = 0;
            var origen = '';
            var destino = '';
            
            function palindromar_caracter(){
                var text_origen = document.getElementById("origen");
                var text_destino = document.getElementById("destino");
                origen = text_origen.value;
				divorigen = origen.split("").reverse().join("");
				destino = text_destino.value;
                var letra = divorigen[indice];
                if(indice <= (origen.length -1)){
                	text_destino.innerHTML = destino + letra;
                	indice = indice + 1;
				 }else{
					 alert("no hay más caracteres");
				  }
                
                
            }
            
            
        </script>
    </head>
    <body>
        
        <textarea id="origen" name="origen">La ruta natural</textarea>
        <textarea id="destino" name="destino"></textarea>
        <button onclick="palindromar_caracter();">Palindromar letra</button>
    </body>
</html>
Deberían dármelo por bueno.. no?

Un saludo chicos, Muchas gracias



Viva ForosDelWeb! xD
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #10 (permalink)  
Antiguo 26/03/2010, 17:48
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Crear un espejo palíndromo de Textareas

ya que estamos, el siguiente

Un simple login,

En este caso, siempre me dice login incorrecto, es decir, ni siquiera detecta el usuario..
(Espero que no os moleste que vaya preguntao, no esto pidiendo el codigo codigo completo... os pongo el mio :P. Voy a contrareloj...)

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Espejo Palíndromo</title>
<script type="text/javascript">
			var usuarios = "user admin demo";
			var passwords = "passuser passadmin passdemo";
			var existe = false;
			var correcto = false;
			function login(){
				var user_var = document.getElementById("user");
            	var pass_var = document.getElementById("password");
				
				tusers = usuarios.split(" ");
				tpass = passwords.split(" ");
				for(x = 0; x < tusers.lenght; x++){
					if(tusers[x]==user_var.value){
						existe = true;
						
				 		if(tpass[x]==pass_var.value){
							correcto = true;
						}
						break;
						alert("aqui salimos, x= " + x);
        		
					}	
				
        		
				}
				if(correcto==true){
				
						alert("hola " + user_var.value);
        		
				}else{
						
						if(existe==true){
							alert("error: El has introducido un password incorrecto");
        		
						}else{
						
							alert("error: login incorrecto");
				
        		
						}
				
        		
				}
        		
			}
			
			
		</script>
</head>
<body>
<label>Usuario</label>
<input type="text" id="user" name="user">
</input>
<label>Password</label>
<input type="text" id="password" name="password">
</input>
<button onclick="login();">Aceptar</button>
</body>
</html>
Yo lo veo bien, pero claro.. yo... xD
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance

Etiquetas: copiar, espejo, palindromo
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 18:22.