Foros del Web » Programando para Internet » Javascript »

ayuda con getElementById() para FireFox

Estas en el tema de ayuda con getElementById() para FireFox en el foro de Javascript en Foros del Web. holap a todos!! tengo un problema que le he dado vueltas por dias y nada que encuentro como solucionarlo... yo tengo una pequeña funcion en ...
  #1 (permalink)  
Antiguo 22/09/2008, 10:10
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
ayuda con getElementById() para FireFox

holap a todos!! tengo un problema que le he dado vueltas por dias y nada que encuentro como solucionarlo... yo tengo una pequeña funcion en javascript que lo unico que me hace es recueperarme el valor que se encuentra en un input, cuando doy clic en el boton guardar me llama a la funcion la cual es

Código HTML:
<script type="text/javascript" language="JavaScript">
function validarForm()
{
var desc=document.getElementById('username').value;
document.getElementById('username').value=desc;
document.forms[0].submit();

}
</script> 
y como pueden ver dentro de la funcion se hace el submit.. ahora mi problema es que en IE funciona perfectamente pero FF no!! ya noc q hacer algun idea?? tengo algo mal en el codigo q no sea compatible FF?

PD: si tengo habilitado los javascript en FF
  #2 (permalink)  
Antiguo 22/09/2008, 10:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: ayuda con getElementById() para FireFox

Primero, que es mejor usar un botón de tipo submit para enviar el formulario y usar el evento onsubmit para las validaciones (http://www.forosdelweb.com/f13/malas...itarse-620808/).

Y si te fijas tu asignación no tiene sentido, es como decir:
Código javascript:
Ver original
  1. var = var2;
  2. var2 = var;
Tal asignación es innecesaria.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 22/09/2008, 10:21
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: ayuda con getElementById() para FireFox

Hola:

Estás seguro de que "username" es un id

explorer confunde un atributo name con un atributo id... lo que se me ocurre es que lo tengas mal, y se produzca un error, con lo que se cancelan las siguientes instrucciones... entre ellas el submit()... fíjate en la consola de errores del navegador.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 22/09/2008, 10:37
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: ayuda con getElementById() para FireFox

holap gracias por su respuestas... y bueno mirando en la consola de errores me aperece esto

Error: Permiso denegado para llamar el método Location.toString

y si tengo mi id como username

<input name="username" id="username" value="" readonly="readonly" type="text">

y no pongo mi boton como submit porq si lo hago asi nunca me coge el campo username, osea lo toma como si no tuviera nada!! y por lo mimso me guarda el dato vacio y con esa funcion en java si me pasa el valor pero solo funciona en IE no en FF, alguna otra idea? ando desesperada
  #5 (permalink)  
Antiguo 22/09/2008, 10:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: ayuda con getElementById() para FireFox

Tal vez si vemos el HTML completo será más fácil precisar la causa del error.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 22/09/2008, 10:55
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: ayuda con getElementById() para FireFox

no les publico todo el html porq es full largo pero te pongo donde esta el inputy el boton

Código HTML:
<tr>
	  <th width="150"><strong><img src="http://images.tel.net/next.gif" width="7" height="12" hspace="3" vspace="3" border="0" align="absmiddle" />&nbsp;&nbsp;Username:</th>
	  <td><input name="username" id="username" value="'.$username.'" readonly="readonly" type="text"></td>
	</tr>

--------------
-------
----
---
-

<tr>
    <td colspan="2" align="center">&nbsp;
        <input name="Save&amp;Menu" type="button" class="btn-form" value="Guardar" onclick="validarForm()"/>
        &nbsp;<a href="/Usuario/list"><input name="menu" type="button" class="btn-form" id="menu"  value="Regresar al Men&uacute;"/></a>
	</td>
</tr>

</form>
<script type="text/javascript" language="JavaScript">
function validarForm()
{
var desc=document.getElementById("username").value;
document.getElementById("username").value=desc;
document.forms[0].submit();

}
</script> 
una cosa el input username se presenta automaticamente cada vez que se escoge un dato de un combo por eso en el input la propiedad redOnly esta en true....

mm alguna idea?
  #7 (permalink)  
Antiguo 22/09/2008, 11:38
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda con getElementById() para FireFox

Una pregunta: ¿Podrías explicar para qué crees tú que sirven estas dos líneas de tu código?
Código javascript:
Ver original
  1. var desc=document.getElementById("username").value;
  2. document.getElementById("username").value=desc;
  #8 (permalink)  
Antiguo 22/09/2008, 13:25
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: ayuda con getElementById() para FireFox

haber explico uso esa simple funcion de javascript porq al enviar los datos por el boton submit como es normal no me el campo username se me setea en blanco, (cuando si tiene valores).... entoncs opte por usar esa funcion porq pa comprobar que el campo username tenia algo hacia q en el evento alert me aparezca lo que tenia la variable desc, y y como cmprobe que no estaba vacio el campo username lo unico que hice fue asignarle lo de la variable desc al campo username, y ahi es cuando en IE me lo hace funcionar perfectamente pero en FF no! por eso mi pregunta es si es que estoy haciendo algo mal?

sera que getElementById() no es compatible con FF? o que? ayuda
  #9 (permalink)  
Antiguo 22/09/2008, 13:44
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 4 meses
Puntos: 14
Respuesta: ayuda con getElementById() para FireFox

Por lo que puedo ver tu DOM esta mal formado, tienes </tr> </form> cuando deberia ser
</tr></table></form>
Quiza debido a este error en tu documento no existe ningun formulario.
__________________
My path is lit by my own fire, I only go where I desire
  #10 (permalink)  
Antiguo 22/09/2008, 13:49
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: ayuda con getElementById() para FireFox

holap! gracias por sugerirme eso.. lo hice ese cambio! pero sigue en lo mismo... aparentemente todo esta bien no? con la sintaxis? alguien tiene alguna otra idea o alguna otra forma de hacer el script para q funcione en los dos??
  #11 (permalink)  
Antiguo 22/09/2008, 14:13
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 5 meses
Puntos: 122
Respuesta: ayuda con getElementById() para FireFox

WOW, si en ese pedacito de código ya tienes un montón de errores, no quiero imaginarme como estará tu código completo, el cual, según tú, es full largo (No se que quieras decir con full largo, pero bueno).

Ok, vayámonos por partes.

Primero, no has respondido a la pregunta de Venkman. Que crees tú que hacen esas dos lineas?

No sé que es lo que crees que hacen esas dos lineas. Lo que si sé, es lo que esas lineas hacen.

1, Tomas el valor de un campo de texto
2, Asignas el valor anterior al mismo campo de texto del que lo has tomando.

Un tanto redundante no crees?

Ahora esto es difícil de entender, o sera que me he acostumbrado a leer tanto javascript que leer español se me hace difícil? (lease con el mejor tono de sarcasmo posible)

Cita:
Iniciado por majitop1986
al enviar los datos por el boton submit como es normal no me el campo username se me setea en blanco,
Aun que no entiendo lo que tratas de decir, si me doy cuenta que estas tratando de decir que si usas un submit normal te da problemas lo cual es síntoma de algo mal en alguna otra parte de tu código. Un submit siempre te enviará los valores que se encuentran en los campos dentro del limite o ambito (delimitado por <form> y </form> en el que se encuentra el botón submit.

Te pregunto, Que es esto?

value="'.$username.'"

De donde tomas esa variable, por que imagino que es una variable, o al menos se ve como una variable (en php)

Quizá ahí está todo el problema.

Otra cosa, aprende a escribir. Te lo digo como una sugerencia. Una vez me lo dijeron a mi también y hoy le agradezco al usuario que lo hizo.
__________________
twitter: @imbuzu
  #12 (permalink)  
Antiguo 22/09/2008, 14:35
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: ayuda con getElementById() para FireFox

hola buzu...

oki mira yo trabajo sobre un framework llamado symfony! me imagino que por tu experiencia lo has escuchado y sabs como se maneja.. bueno lo que hago en mi pagina es escoger el nombre de un empleado segun el nombre que se escoja el campo username se va llenar automaticamente con el username del usuario.... como hago esto? bueno aqui te mando la sintaxis
Código HTML:
<table align="left" width="100%" border="0" cellpadding="3" cellspacing="0">
<tbody>
<tr>
	<strong>
	<img src="http://images.tel.net/next.gif" width="7" height="12" hspace="3" vspace="3" border="0" align="absmiddle" />
	Ingreso de Nuevo Usuario
</tr>
<tr>
<td colspan="2" align="left" valign="top" class="box-main-options"><table align="left" width="100%" border="0" cellspacing="0" cellpadding="3">
	<tr>
	  <th width="200"><strong><img src="http://images.tel.net/next.gif" width="7" height="12" hspace="3" vspace="3" border="0" align="absmiddle" />&nbsp;&nbsp;Empleado(*):</strong></th>
	  <td><?php
			$c=new Criteria();
			$c->add(BasePersonalDatPeer::PERS_ESTADO,1);
			$c->addAscendingOrderByColumn(BasePersonalDatPeer::PERS_APELLIDO );
			$perss=BasePersonalDatPeer::doSelect($c);  
			 echo select_tag('pers_id', objects_for_select($perss, 
			 'getPersId',
			 '__toString', $personal,"include_custom=Seleccione"
	   ))  ?></td>
	</tr>
	<tr>
	  <th width="150"><strong><img src="http://images.tel.net/next.gif" width="7" height="12" hspace="3" vspace="3" border="0" align="absmiddle" />&nbsp;&nbsp;Username:</th>
	  <td>
		<?php if($personal==0): ?>  
			<div id="user"><?php echo input_tag('username', '', array('readonly'=>'true')) ?>
			<? //echo '<input name="user_username" id="user_username" value="" readonly="readonly" type="text">'?></div>
		<?php else: 
		//echo $personal;?>
			<div id="user"><?php echo input_tag('username', $username, array('readonly'=>'true')) ?>
			<?//'<input name="user_username" id="user_username" value="'.$username.'" readonly="readonly" type="text">'?></div>
		<?php endif; 
		if_javascript();
				 echo observe_field('pers_id', array(
				 'update' => 'user',
				 'url'    => 'AdmiUsuario/listUserByPersonal',
				 'with'   => "'idPers='+ value",
				 
				 ));
				 end_if_javascript(); ?>	
 	  </td>
	</tr> 
ahi como te puedes dar cuenta estoy haciendo uso del metodo ajax bajo el framework de symfony.... como dije antes si usaba un boton submit como es normal... al momento de guardar los datos en el base el campo username lo guardaba en blanco y con la funcion de javascript q puse antes en IE me permitia extraer el valor del campo usernamey guardarlo en la base... solo que en FF no lo hace...!! ahora tu dics que tengo tantos ERRORES... entoncs por favor indicame cuales son segun tu criterio

gracias por tu tiempo
  #13 (permalink)  
Antiguo 22/09/2008, 15:34
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda con getElementById() para FireFox

Cita:
Iniciado por majitop1986 Ver Mensaje
haber explico uso esa simple funcion de javascript
majitop1986, no he entendido nada de la explicación que has dado. Pero de cualquier forma no has respondido a lo que te preguntaba. Te preguntaba por esas dos líneas exactamente. ¿Para qué sirven exactamente esas dos líneas? ¿Qué crees tú que hacen esas dos líneas?
  #14 (permalink)  
Antiguo 22/09/2008, 23:24
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 5 meses
Puntos: 122
Respuesta: ayuda con getElementById() para FireFox

majitop, debiste haber dicho desde un principio lo del framework. Todo cambia cuando usas frameworks y te equivocas, no he escuchado hablar de el y no se como se maneja. No uso frameworks, yo soy javascriptero no frameworkero.

De cualquier modo. Sigo creyendo que estas haciendo algo mal... Ademas tu código es cada vez mas confuso... De donde agarras el nombre del empleado? que hace el php? no me dijiste de donde estas agarrando esa variable, me imagino que es de php.
__________________
twitter: @imbuzu
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 14:32.