pasar un link a un input [SOLUCIONADO]

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: maiku, akodo

Responder
Avatar de Usuario
greer
Forista Medio
Forista Medio
Mensajes: 334
Registrado: Mar Feb 27, 2007 8:00 am
Ubicación: PANAMA

pasar un link a un input [SOLUCIONADO]

Mensaje por greer »

hola campañeros.

se que debe ser algo bien facil de hacer lo que les voy a comentar, pero he intentado muchas veces no lo logro.

tengo dos <div>, uno tiene unos enlaces o links <a> y el otro <div> tiene un <input>. Me gustaria ver como al darle clik al enlace o link este dato se pase al <input>

esto es lo que he podido hacer hasta el momento, a ver si alguien con el conocimiento en javascript me indica cual es el error.

Código: Seleccionar todo

<div id="data">
	<a href="link1.html">Link 1</a><br>
	<a href="link2.html">Link 2</a><br>
	<a href="link3.html">Link 3</a><br>
</div>



<div id="data2">
	<input class="inputbox" readonly="readonly" value="" name="posRegard" id="data2">
</div>


<script language="javascript">
function seleccionar(data){
	a = document.getElementById(data);
	idDiv = document.getElementById('data2');
	inputDiv = idDiv.getElementsByTagName('input');
	for (i = 0; i < td.length; i++){
		inputDiv[i].value = a[i].innerHTML;
	}
}
</script>
Saludos.
Última edición por greer el Mar Oct 18, 2011 6:10 pm, editado 1 vez en total.
http://greermurray.com

Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: pasar un link a un input

Mensaje por akodo »

Por ahí veo una variable "td" (en td.length) que no sé de dónde sale. Además, el readonly no me acaba de gustar, así que yo probaría quitándolo.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])

Avatar de Usuario
greer
Forista Medio
Forista Medio
Mensajes: 334
Registrado: Mar Feb 27, 2007 8:00 am
Ubicación: PANAMA

Re: pasar un link a un input

Mensaje por greer »

lo ajuste entendiendo tu observacion, pero no lo logrue, esto fue lo que hice:

Código: Seleccionar todo

<div id="data">
	<a href="#">Link 1</a><br>
	<a href="#">Link 2</a><br>
	<a href="#">Link 3</a><br>
</div>



<div id="data2">
	<input class="inputbox" value="">
</div>


<script language="javascript">
function seleccionar(data){
	a = div.getElementsByTagName('a');
	idDiv = document.getElementById('data');
	inputDiv = idDiv.getElementsByTagName('input');
	for(i = 0; i < a.length; i++){
		inputDiv[i].value = a[i].innerHTML;
	}
}
</script>
que puedo estar haciendo mal, donde esta el error o que me hace falta, me parece que esta todo ?

Editado -- Dom Oct 16, 2011 1:28 pm --

viendo detenidamente el codigo que hice, fui estudiandolo y tratar de entender la logica de lo que estaba...

y lo pude lograr jejeje les pongo lo que hice:

Código: Seleccionar todo

<div id="data">
	<a href="javascript: seleccionar()">Link 1</a><br>
	<a href="javascript: seleccionar()">Link 2</a><br>
	<a href="javascript: seleccionar()">Link 3</a><br>
</div>

<div id="data2">
	<input type="text" name="data2" size="20">
</div>


<script language="javascript">
function seleccionar(){
	a = document.getElementsByTagName('a');
	idDiv = document.getElementById('data2');
	inputDiv = idDiv.getElementsByTagName('input');
	for(i = 0; i < a.length; i++){
		inputDiv[i].value = a[i].innerHTML;
	}
}
</script>
como veran en los link del primer <div> puse: javascript: seleccionar() y ajuste un poco el codigo y quedo! jejeje

cuando doy click en el primer link, este pega lo que dice (Link 1) en el <input> ...pero lo que estoy viendo es que si hago click en el segundo me sigue pegando el Link 1.

logrue hacer lo que queria, jejej pero ahora solo me pasa el primer link... alguna observacion ?
http://greermurray.com

Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: pasar un link a un input

Mensaje por akodo »

El problema lo tienes en el bucle que has puesto.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])

Avatar de Usuario
greer
Forista Medio
Forista Medio
Mensajes: 334
Registrado: Mar Feb 27, 2007 8:00 am
Ubicación: PANAMA

Re: pasar un link a un input

Mensaje por greer »

me fije en el bucle, y si tienes razon...

tienes alguna idea de como podria ser ? no se me ocurre nada :s
http://greermurray.com

Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: pasar un link a un input

Mensaje por akodo »

Pasa el link como parámetro de la función. No sé si funcionará correctamente, pero puedes intentar esto:

Código: Seleccionar todo

<div id="data">
   <a href="javascript: seleccionar(this)">Link 1</a><br>
   <a href="javascript: seleccionar(this)">Link 2</a><br>
   <a href="javascript: seleccionar(this)">Link 3</a><br>
</div>

<script language="javascript">
function seleccionar(element){
   //a = document.getElementsByTagName('a');
   idDiv = document.getElementById('data2');
   inputDiv = idDiv.getElementsByTagName('input');
   for(i = 0; i < a.length; i++){
      inputDiv[i].value = element.innerHTML;
   }
}
</script>
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])

Avatar de Usuario
greer
Forista Medio
Forista Medio
Mensajes: 334
Registrado: Mar Feb 27, 2007 8:00 am
Ubicación: PANAMA

Re: pasar un link a un input

Mensaje por greer »

nop... :( no funciono pero estoy vendo para ver que hago... a ver si modifico un poco tambien, a ver que tal.

Saludos y gracias.

Editado -- Mar Oct 18, 2011 3:55 pm --

bueno, despues de buscar y buscar vi en google algo parecido pero con jquery

lo tome de base y lo modifique hasta lograr lo que queria y asi quedo:

Código: Seleccionar todo

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
 
<div id="data">
 <a href="javascript:seleccionar(1);" >opcion 1</a><br>
 <a href="javascript:seleccionar(2);" >opcion 2</a><br>
 <a href="javascript:seleccionar(3);" >opcion 3</a><br>
</div>

<div id="data2">
	<input type="text" size="20">
</div>


<script type="text/javascript">
function seleccionar(valor){
 jQuery("#data2 input").val(valor);
}
</script>
es exactamente lo que buscaba jejeje pero! nuevamente me di cuenta de algo, actualmente tengo que agregarle un numero 1,2,3

<a href="javascript:seleccionar(1);" >opcion 1</a><br>

para que funcione...

ahora tengo un nuevo dilema jajajaja ...como podria hacer para que esto fuera dinamico ? no tener que ponerle un numero para que el input tome el valor...

yo seguire buscando si alguien tiene algo jjejee se lo voy agradecer

Saludos.
http://greermurray.com

Avatar de Usuario
maiku
Moderador
Moderador
Mensajes: 1529
Registrado: Jue Abr 19, 2007 7:00 am
Ubicación: Cojutepeque, El Salvador C. A.

Re: pasar un link a un input

Mensaje por maiku »

hum, no entiendo bien lo que necesitas, pero si en vez del valor quieres pasar el indice, puedes usar .index() del jQuery

Código: Seleccionar todo

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<body>
<div id="data">
<a href="#" >opcion 1</a><br>
<a href="#" >opcion 2</a><br>
<a href="#" >opcion 3</a><br>
</div>

<div id="data2">
   <input type="text" size="20">
</div>

<script>

$("a").click(function () {
  // this is the dom element clicked
  var index = $("a").index(this);
  jQuery("#data2 input").val(index);
});


</script>
</body>

aunque inicialmente entendía por tus post que necesitabas el "texto" del link

Código: Seleccionar todo

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<body>
<div id="data">
<a href="#" >opcion 1</a><br>
<a href="#" >opcion 2</a><br>
<a href="#" >opcion 3</a><br>
</div>

<div id="data2">
   <input type="text" size="20">
</div>

<script>

$("a").click(function () {
  
  a = document.getElementsByTagName('a');

  var index = $("a").index(this);
  jQuery("#data2 input").val(a[index].innerHTML);
});


</script>
</body>

suerte y nos leemos.
Grüße...
Maiku

Full linux alchemist!!!

Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: pasar un link a un input

Mensaje por akodo »

Además de lo que ha dicho maiku, yo añadiría una clase a los enlaces, ya que tal como lo ha dejado todos los enlaces de la página tendrían asociada esa función, y seguramente no quieras eso.

Simplemente, en los enlaces que quieras esa función pones:

Código: Seleccionar todo

<a href="#" class="fakeLink">....</a>
y modificas la función con:

Código: Seleccionar todo

$("a.fakeLink").click(function (){ ..... });

PD: ¿Se podría acceder al texto del elemento en cuestion con el siguiente código (suponiendo las condiciones similar al problema)?

Código: Seleccionar todo

var texto = $(this).text();
Doy por supuesto que puede dar problemas si el enlace tiene otros elementos html dentro de él.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])

Avatar de Usuario
greer
Forista Medio
Forista Medio
Mensajes: 334
Registrado: Mar Feb 27, 2007 8:00 am
Ubicación: PANAMA

Re: pasar un link a un input

Mensaje por greer »

gracias akodo, gracias maiku, es exactamante como lo necesitaba jejeje son los mejores, yo igual seguire leyendo mas sobre el tema para poder en algun momento ayudar tambien.

Saludos y gracias.
http://greermurray.com

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje