Pos mirar, yo tengo esta funcioni:
<script>
function elegirAsiento(i,pasajeros){
var j=0;
var elegidos=new Array(50);
var cont2=0;
var cont3=0;
var encontrado=false;
var elegidosFinal=new Array(50);
cont = parseInt(document.form.contador.value);
if (parseInt(cont)<parseInt(pasajeros)){
if (parseInt(cont)>0){
cadena = document.form.asientoElegido.value;
elegidos=cadena.split(",");
for (j=0;j<cont;j++){
if (parseInt(i)==parseInt(elegidos[j])){
encontrado=true;
}
else{
elegidosFinal[cont3]=elegidos[j];
cont3++;
}
}
if (!encontrado){
if (parseInt(i)<10)
elegidosFinal[cont3+1]="0"+String(i);
else
elegidosFinal[cont3+1]=String(i);
}
for (j=0;j<cont3+1;j++){
document.form.asientoElegido.value=document.form.a sientoElegido.value+String(elegidosFinal[j]);
}
Eso lo uso para lo siguiente:
Tengo x ejemplo 50 numeros, 1, 2 3, 4.... 50, cada uno es un hipervinculo.
Tengo un textbox. Cuando hago click en un nº, se pone ese nº en el textbox, y si le vuelvo a dar (que quiere decir que ya existe en el textbox) pues se crea un array nuevo pero sin ese nº (lo elimina).
Tambien controlo en la función, el nº de veces que puedo elegir numeros, si he definido (ya sea por $_POST, $_GET o lo que sea) el nº de veces que puedo elegir.
Pues bien, yo elijo un nº, se mete en el textbox (decir que tengo otro textbox pero oculto para controlas el nº de click que hago (el nº de elecciones, que en esa función si "elimino" se descuenta una, si inserto se añadi 1)).
Ahora meto otro nº, pero me sale una cosa rara.
Si meto el 20, y luego elijo el 22 (o el que sea) me sale 20undefined, si meto otro diferente me sale 202undefined (coge los 3 primeros numeros del textbox y un undefined detras)
Si elijo un nº y luego el mismo me sale igual, 20 y luego 202 undefied, pero si elijo otra vez el mismo, me vuelve otra vez a 20....
No se si me habeis entendido, pero lo que quiero es que al elegir un nº se añade, al leegir otro se añada y si ya esta en el textbox que se elimine
Que habria que cambiar en esafuncion??
Graciass
}
else
document.form.asientoElegido.value=i;
if (!encontrado)
document.form.contador.value = parseInt(cont) + parseInt(1);
else
document.form.contador.value = parseInt(cont) - parseInt(1);
document.submit;
}
else
{
alert("Ya has puesto más indiota");
}
}
</script>