Foros del Web » Programando para Internet » Javascript »

validar campos select (dinámicos)

Estas en el tema de validar campos select (dinámicos) en el foro de Javascript en Foros del Web. Hola que tal, espero alguien pueda ayudarme por favor; tengo una forma que pide 3 tipos de datos, una cantidad (text), una categoria (select) y ...
  #1 (permalink)  
Antiguo 26/05/2006, 11:31
 
Fecha de Ingreso: marzo-2006
Mensajes: 22
Antigüedad: 18 años, 1 mes
Puntos: 0
Pregunta validar campos select (dinámicos)

Hola que tal, espero alguien pueda ayudarme por favor; tengo una forma que pide 3 tipos de datos, una cantidad (text), una categoria (select) y una descripcion (textarea). Esta forma se crea cuantas veces quiera el usuario dinamicamente dependiendo de un numero que da (pueden ser 3,5 etc). Se requiere que valide la categoria (select) para que no se repita a la hora de insertar los datos. Primero valide que ningun campo este vacio:

function valida(){
var totalf = document.forma.length;
for (i=0; i<totalf; i++){
if (document.forma.elements[i].value == "" ||
document.forma.elements[i].value == "-99"){
alert("No debes dejar vacio ningun campo!!") ;
document.forma.elements[i].focus() ;
return false ;
}//fin if vacios
}//fon for
document.forma.submit();
}//fin function

Me falta validar que los campos categoria(select) no se repitan, pero es ahi en donde me atore por cuestiones de los corchetes que lleva:

<select name="cuentaCont[]">
<option value="-99">--Seleccione--</option>
<? for($j=0; $j<$lista; $j++){
$datoCuenta = mysql_fetch_array($qryCuenta); ?>
<option value="<?=$datoCuenta[0]?>"><?=$datoCuenta[2]?></option>
<? } ?>
</select>

E buscado algunos ejemplos en internet pero ninguno muestra cuando es por medio de un for...eh intentado de varias formas erroneas...

1) Ponerlo tal cual
if (document.forma.elements[i].value == document.forma.elements[i].value)
etc...pero compara el mismo elemento cuentaCont[0]==cuentaCont[0] en
lugar de comparar cuentaCont[0]==cuentaCont[1]...entonces siempre me
marca que son iguales...
2) Asignar valores a variables
var cuenta = document.forma.('cuentaCont[]');
var numcta = cuenta.selectedIndex;
if (document.forma.elements[i].value == numcta){
pero aqui no me reconoce el ('cuentaCont[]') marca error de "XML filtering
predicate operator called on incompatible HTMLFormElement"...

Obvio todo esto lo estoy poniendo en un for para que vaya corriendo cada elemento...espero alguien pueda darme alguna otra idea de como resolver esto...gracias!!
  #2 (permalink)  
Antiguo 27/05/2006, 00:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Ese problema ya se trató en otras ocasiones...
Los corchetes deben estar dentro de la cadena y aparte debes poner el índice...

if (document.forms.forma["cuentaCont[]"][0].value == document.forms.forma["cuentaCont[]"][1].value)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 29/05/2006, 10:53
 
Fecha de Ingreso: marzo-2006
Mensajes: 22
Antigüedad: 18 años, 1 mes
Puntos: 0
perdon! habia buscado en otros temas pero no lo encontre! una pregunta mas!! como le hago para que eso este dentro de un for, como ya lo mencione tengo formas dinamicas! que pasa si tengo 8 campos que comparar? tengo que comparar el 0 con el 1, 0 con el 2 ... 1 con el 2, 1 con el 3... 2 con 3 etc ect
para que ninguno se repita...gracias!
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 05:57.