Javascritp en Mozilla...
tengo el siguiente Javascript que me he currado para rellenar un menú desplegable dependiendo de lo que se seleccione en otro menú... pero solo funciona en IE. :(
alguien sabe porque y que puedo hacer? :)
Gracias!!!
<code>
<script language="JavaScript">
<!-- Begin
var GRUPO = new Array();
var INDICES = new Array();
GRUPO[2] = 'nombre1, nombre2'
GRUPO[4] = 'nombre3, nombre4 nombre5, nombre6'
var INDICES = new Array();
INDICES[2] = '2, 2'
INDICES[4] = '4, 4, 4, 4'
function cambia (valor) {
form1.encargado.options.length = 0;
var cadena = GRUPO[valor];
var cadenaValores = INDICES[valor];
if (cadena != null){
var elementosCadena = cadena.split(', ');
var elementosCadenaValores = cadenaValores.split(', ');
for (var y=0;y<elementosCadena.length;y++){
var newopt = new Option (elementosCadena[y], elementosCadenaValores[y])
form1.encargado.options[y] = newopt;
}
}else {
alert ('No hay encargados relacionados');
form1.encargado.options.length = 0;
}
}
// End -->
</script>
</code>
cbp
prueba a poner history.go(0) después de crear el option
(proposición trapera mientras pienso algo mejor... ;))
black
Gracias pero no puedo, porque me recarga la página y entonces se me quedan con los valores inciales.... :)
seguimos intentándo... :D
cbp
cagu'en la, acabo de leer que hay que hacerlo cuando creas los option, vaya full de referencia :(
una pregunta, ¿por qué no haces esto en un sólo paso?
<code>var newopt = new Option (elementosCadena[y], elementosCadenaValores[y]);
form1.encargado.options[y] = newopt;</code>
asín que cualo
<code>form1.encargado.options[y] = new Option (elementosCadena[y], elementosCadenaValores[y]);</code>
no creo que tenga que ver, pero gano tiempo y parece que te estoy ayudando :)
black
cbp
una pregunta, ¿por qué no haces esto en un sólo paso?
Porque soy un tío chulo! :D jejeje!!!
lo he cambiado pero nada, tampoco es de eso.... :)
cbp
tú lo que eres es un macarra y un jevi :P
black
cbp
tú lo que eres es un macarra y un jevi :P
VIVA AIRON MAIDEN!!!! :)
cbp
¿sigues sin arreglarlo? ahora me voy a comer, a ver si luego puedo echarle un vistazo
black
cbp
¿sigues sin arreglarlo? ahora me voy a comer, a ver si luego puedo echarle un vistazo
Acabo de venir de comer... es por orgullo propio, por demostrar que mozilla también puede con ese javascritp! :)
El cliente va usarlo conIE, pero es por cabezonería! :D
cbp
lo peor es que eso ya lo he hecho unas cuantas vences y funcionaba, pero ahora no lo encuentro... :(
cbp
acabo de ver que lo que no te crea es el name, eso lo tienes que hacer tú después:
<code>var newopt = new Option (elementosCadena[y], elementosCadenaValores[y]);
form1.encargado.options[y] = newopt;
form1.encargado.options[y].name = "loquesea";
</code>
prueba a ver...
black
el name del selector?
meddle
¿puedes colgar un ejemplo online? gracias.
cbp
no, no el name del option, al crearlo le pasas el text y el value, pero no el name, se lo tienes que añadir tú después
black
este es el archivo...
www.creacionesdjc.net/pruebas/javascript.html
el tirador que cambia es el de encargado y depende del valor seleccionado en el tirador de constructora...
el name es "encargado", creo que si lo nombre... no?
GRACIAS!
meddle
vale, a ver, no te lo tomes mal, pero aceptame estas dos criticas:
1.) cuando programes un formulario, una base de datos o un generador de particulas atomico, lo primero a tener en cuenta es no meter mas codigo del necesario para que funcione. Es decir, todas esas mierdas de tablas (que no es porque sean tablas, si fueran miles de capas te diria lo mismo) sobran y estorban para depurar el codigo. entorpecen la vista. quedate con el formulario solamente. ya tendras tiempo de hacerlo bonito.
2.) la segunda cosa es que te acostumbres a poner los valores de propiedades de elementos siempre entre comillas. height=20 deberia ser height="20" y value=Albacete deberia ser value="Albacete". con esto solo creo que podria funcionar, pero no he mirado el codigo, por razon expuesta en punto 1 ;)
black
meddle
vale, a ver, no te lo tomes mal, pero aceptame estas dos criticas
lo sé! :) lo que pasa es que la entrega es el viernes... :)
Pruebo lo tuyo CBP...
meddle
black
lo sé! :) lo que pasa es que la entrega es el viernes... :)
eso no es excusa. para empezar pierdes tiempo metiendo estilo (que deberas meterlo igualmente luego) y sobretodo, lo que te he dicho, pierdes tie,po porque la pagina lleva demasiado codigo inutil que no te deja ver los fallos ;)
cbp
puta mierda, te da esto
"Error: uncaught exception: [Exception... "Not enough arguments [nsIDOMWindowInternal.alert]" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: <unknown filename> :: onchange :: line 0" data: no]"
en el evento onchange del select :(
black
meddle
<div class="quote">
black
<blockquote>lo sé! :) lo que pasa es que la entrega es el viernes... :)</blockquote>
</div>eso no es excusa. para empezar pierdes tiempo metiendo estilo (que deberas meterlo igualmente luego) y sobretodo, lo que te he dicho, pierdes tie,po porque la pagina lleva demasiado codigo inutil que no te deja ver los fallos ;)
Posi :(
GRASIAS...
no funciona lo que me has comentado cbp...
cbp
ya, ya me he dau cuenta, si me tienes aquí liao con el código de los co****s, que no soy capaz de sacar por qué no va... :(
qué deslenguao me vuelvo cuando no me salen las cosas, hos***s :)
es que no lo hace porque no se dispara el evento de onChange, y así muy malamente... lo que no sé es porque no se dispara, con el onfocus tampoco va
black
el javascript console de Mozilla (que nunca me acuerdo de usar) me da el siguiente error:
form1 is not definied en la linea:
<code>form1.encargado.options.length = 0;</code>
si lo cambio por
<code>this.encargado.options.length = 0;</code>
me dice
this.encargado has no properties...
black
ARREGLADOOOOOOOOOOOOOOOOOOO!!!! :D
tengo que poner
<code>
document.form1.encargado.options.length = 0;</code>
black
GRACIAS POR LA AYUDA!! :D
cbp
joe, black, ya te vale, toa la tarde perdia por esa giliposhé :)
black
cbp
joe, black, ya te vale, toa la tarde perdia por esa giliposhé :)
jejejeje!!!! acabo de leerlo! :)
y lo entretenido que te he tenido? jajaja!!!
por cierto, porque tengo que poner el document al pincipio para que funcione?