• Publicidad

Asignar el foco a un text pintado con ajax

Todo lo relacionado con lenguajes de programación distintos de Perl: PHP, Java, C++, Ruby, Python, etc.

Asignar el foco a un text pintado con ajax

Notapor erml_ » 2007-06-07 12:10 @548

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?
erml_
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2007-05-30 17:08 @755

Publicidad

Notapor monoswim » 2007-06-07 12:27 @560

window.document.formulario_nombre.elemento_nombre.focus()

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor erml_ » 2007-06-08 11:00 @500

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.
erml_
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2007-05-30 17:08 @755


Volver a Programación en general

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados