Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Asignar el foco a un text pintado con ajax

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Programación en General
Mensaje Jue Jun 07, 2007 11:10 am
erml_
Perlero Nuevo
Perlero Nuevo
Registrado: 30 May 2007
Mensajes: 5
Asignar el foco a un text pintado con ajax Responder citando

Saludos.

Tengo 2 formularios distintos, dependiendo de la opción elegida en un <select> coloco uno de ellos dentro de un campo en una tabla.
Pinto el formulario que corresponde, llamando a una función hecha en PHP, la cual llamo utilizando HTTPD_request.

Todo va bien, excepto que no puedo hacer que el primer campo del formulario pintado por el php obtenga el foco. Así que el usuario al seleccionar la opción que desea en el select, no puede continuar con el llenado del formulario, ya que el foco se pierde. Así que debe usar el mouse para colocarse en la primer caja del formulario.

¿Cómo puedo asignar el foco al primer elemento del nuevo formulario?
Mensaje Jue Jun 07, 2007 11:27 am
monoswim
Vive para Perl en Español
Vive para Perl en Español
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
Responder citando

window.document.formulario_nombre.elemento_nombre.focus()

Saludos
Mensaje Vie Jun 08, 2007 10:00 am
erml_
Perlero Nuevo
Perlero Nuevo
Registrado: 30 May 2007
Mensajes: 5
Responder citando

Saludos .

Si lo he intentado, poniendo en una funcion de JS : document.nombre_formulario,nombre_elemento.focus()

y llamandola desde html con el evento onload, pero no me funciona. Creo que se debe a que el formulario lo despliego en la pagina usando una funcion en PHP que se encuentra en un fichero adicional, y llamando a dicha funcion por medio del HTTPD-request .

Esta mas o menos asi :
Fomulario_principal :
<body>
<select id="opcion_seleccionada" onchance="pintar_formulario(this.value)">
<option value="1"> Datos de Mamá</option>
<option value="1"> Datos del Hijo</option>
</select>
<div id="formulario_resultado"> </div>
</body>

Funcion JS para llamar a pintar el formulario usando el objeto HTTPD_Request:

function pintar_formulario(valor_seleccionado) {
_objetus=http_request();
_values_send='valor_seleccionado';
_URL_=URL+'?';
if (metodo=='GET') { _objetus.open("GET",_URL_+"&"+_values_send,true); }
else {
_objetus.open("POST",_URL_,true);
_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
_objetus.send('&'+_values_send);
}

_objetus.onreadystatechange=function() {
if (_objetus.readyState==1) {
_target.innerHTML="Procesando info.......";
}
else if (_objetus.readyState==4) {
if(_objetus.status==200) {
document.getElementById(_target).innerHTML=_objetus.responseText;
}
else {
_target.innerHTML = "Error: "._objetus.status;
}
}
}
if (metodo=='GET') { _objetus.send(null); }
}.





Pintando formularios n PHP:
<?php
$opcion=$_GET['valor_seleccionado'];
if ($opcion==1) { capturar_datos_1 ; }
else { capturar_datos_2; }

function capturar_datos_1 ()
{ echo "<table width="100%" border="1">";
echo "<th><b>Datos generales de la Madre.</b></th>";
echo " <tr><td ><input type="text" id="nombre"></td></tr>";
}

function capturar_datos_2 ()
{ echo "<table width="100%" border="1">";
echo" <th ><b>Datos generales del recien nacido.</b></th>";
echo " <tr> <td><input type="text" id="talla"></td>";
echo " <td><input type="text" id="peso"></td>";
echo " <td><input type="text" id="hora_nac"></td> </tr>";
}
?>

Bueno mas o menos es asi, todo sale bien, excepto que el formulario nuevo se pinta dentro del div llamado 'formulario_resultado', pero el foco no lo obtiene la primer caja de texto de ese nuevo formulario, se pierde.
Hay alguna manera de que lo pueda asignar a la primer caja de texto, sin utilizar JavaScript???

Mil gracias por la ayuda.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Programación en General Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group