Foros del Web » Programando para Internet » Javascript »

gran duda

Estas en el tema de gran duda en el foro de Javascript en Foros del Web. hola a todos acabo de hacer una función de autofocus y todo funciona bien al momento de pasar he ocultar campos pero me acaba de ...
  #1 (permalink)  
Antiguo 14/10/2010, 15:27
Avatar de mexbale  
Fecha de Ingreso: septiembre-2010
Ubicación: Iztapalapa
Mensajes: 146
Antigüedad: 13 años, 7 meses
Puntos: 1
gran duda

hola a todos acabo de hacer una función de autofocus y todo funciona bien al momento de pasar he ocultar campos pero me acaba de surgir un problema les cuento mejor el caso:

tengo dos funciones para activar y desactivar campos entonces depende lo que metan en el campo desactiva o activa un campo pero hay una sección de mi formulario que desactivo con la misma función un <tr> y <td> y le aplico la misma función de autofocus y al momento de intentar pasar al campo que seguiría me manda un error la pagina que dice esto: No se puede mover hacia el control porque el control es invisible, no esta habilitado o es de un tipo que no acepta al foco.
La verdad no se por que pasa esto espero que alguien sepa por que y me pueda ayudar a resolver este duda les dejo las funciones que uso:

esta es la de Autofocus:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function mostrarTab(obj) {rolling=obj.scrollTop;if(typeof obj.selectionStart == 'number') {var start = obj.selectionStart;var end = obj.selectionEnd;obj.value = obj.value.substring(0, start)+"\t";obj.value+= obj.value.substring(start, obj.value.length);obj.focus();obj.selectionStart =  obj.selectionEnd= end + 2;} else if(document.selection) {obj.focus(); var range = document.selection.createRange(); if(range.parentElement() != obj) return false; if (range.text != "") {if(typeof range.text == 'string'){document.selection.createRange().text ="\t"+range.text;}else obj.value += "\t";}else obj.value += "\t";}obj.scrollTop=rolling;}
  3. function tabulador(form,field){var next=0, found=false var f=form for(var i=0;i<f.length;i++)   {if(field.name==f.item(i).name){next=i+1; found=true break;}}while(found){if( f.item(next).disabled==false &&  f.item(next).type!='hidden' &&  f.item(next).style.display!='none'){f.item(next).focus();break;}else{if(next<f.length-1)next=next+1; else break;}}}
  4. </script>

Activar y desactivar:
Código Javascript:
Ver original
  1. <script language="JavaScript" type="text/javascript">
  2. function activaEstado(iden){var elhtml2 = document.getElementById(iden);var elhtml = iden;if(elhtml2.style.display = 'none'){elhtml2.style.display = 'block';}else {elhtml2.style.display = 'block';}}
  3. function desactivaEstado(iden){var elhtml2 = document.getElementById(iden);var elhtml = iden;elhtml2.style.display = 'none';elhtml2.value="";}
  4. </script>

Última edición por mexbale; 14/10/2010 a las 15:30 Razón: Ortografia
  #2 (permalink)  
Antiguo 14/10/2010, 15:58
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: gran duda

no he revisado el codigo, pero basandome en el mensaje de error, sucede cuando intentas poner el foco en un elemento que esta oculto o inhabilitado. primero tienes que mostrarlo o habilitarlo antes de asignar el foco al elemento.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 14/10/2010, 16:02
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: gran duda

el error es bastante claro. al no estar habilitado o está oculto el objeto no puedes darle el foco. tienes que habilitarlo o mostrarlo
edito: ¿puedo elimino?
  #4 (permalink)  
Antiguo 15/10/2010, 10:27
Avatar de mexbale  
Fecha de Ingreso: septiembre-2010
Ubicación: Iztapalapa
Mensajes: 146
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: gran duda

ok si se que es por que quieres pasar al foco cuando esta oculto pero quisiera saber como puedo resolver esta duda tengo que modificar algo o como
de antemano gracias

Etiquetas: Ninguno
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 09:05.