Jue Jun 07, 2007 11:10 am
|
 |
erml_
Perlero Nuevo

|
Registrado: 30 May 2007
Mensajes: 5
|
|
| Asignar el foco a un text pintado con ajax |
|
|
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? |
|
|
|
Jue Jun 07, 2007 11:27 am
|
 |
monoswim
Vive para Perl en Español

|
Registrado: 18 Nov 2003
Mensajes: 691
Ubicación: Buenos Aires
|
|
|
|
|
window.document.formulario_nombre.elemento_nombre.focus()
Saludos |
|

Vie Jun 08, 2007 10:00 am
|
 |
erml_
Perlero Nuevo

|
Registrado: 30 May 2007
Mensajes: 5
|
|
|
|
|
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. |
|

Powered by phpBB © 2001, 2005 phpBB Group
|