Foros del Web » Programando para Internet » Javascript »

Problema con campo no vacio...

Estas en el tema de Problema con campo no vacio... en el foro de Javascript en Foros del Web. Hola a todos, Estoy tratando de que sin no llenan un campo de un alert al tratar de unviar el formulario, me dieron este scritp ...
  #1 (permalink)  
Antiguo 19/03/2005, 06:56
 
Fecha de Ingreso: marzo-2005
Mensajes: 23
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Problema con campo no vacio...

Hola a todos,

Estoy tratando de que sin no llenan un campo de un alert al tratar de unviar el formulario, me dieron este scritp pero tengo que cambiar los nombres de los campos que ya tengo puesto que hay que agregarle un numero al final y el problema es que no puedo cambiar los nombres porque son campos que se repiten dentro del formulario.

Esto es lo que tengo, que funciona, pero con el problema del cambio de nombre:
<html>
<head>
<script language="JavaScript">
function noVacio() {
var i;
var n = parseInt(document.frm.cantidad.value);
var bError = false;

for (i = 0; i < n; i++){
bError = bError || (eval("document.frm.elemento" + i + ".value == ''"));
if (bError){
alert("Campo inválido");
eval("document.frm.elemento" + i + ".focus()");
break;
}
}
if (!bError) alert("Ok");
}

</script>
</head>
<body>
<form name="frm">
<input type="text" name="elemento0"><br>
<input type="text" name="elemento1"><br>
<input type="text" name="elemento2"><br>
<input type="hidden" name="cantidad" value="3">
<input type="button" name="enviar" value="enviar" onclick="noVacio()">
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 19/03/2005, 16:33
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
.

Hola acardozo., ahi llevas la funcion reparada.

function
noVacio(form) {
for (i=0;i<form.length-2; i++){

if(form.elements[i].value==""){

alert("Campo inválido");
form.elements[i].focus();
return;
}

}

alert("Ok");
}


Haz la llamada a la funcion de esta forma:
<input type="button" name="enviar" value="enviar" onclick="noVacio(this.form)">

Saludos.

.
  #3 (permalink)  
Antiguo 20/03/2005, 08:39
 
Fecha de Ingreso: marzo-2005
Mensajes: 23
Antigüedad: 19 años, 1 mes
Puntos: 0
Programeitor...

Programeitor,

Esto me funciona, pero la cosa es que tengo por decir 40 campos, pero de esos yo solo quiero confirmar no vacios 15.

Con esta funcion tengo que llenarlos todos.

Me podrias decir que puedo hacer.

Gracias de antemano por su generosa colaboracion,

Alex
  #4 (permalink)  
Antiguo 20/03/2005, 09:25
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
.

Bueno si colocas los campos a confirmar seguidos unos de otros ,y sabiendo que indice tiene el primero de ellos y cuantos son en total, 15 dices., pues:

Mira el indice va en relacion a su posicion en el form:

<form>
<input............ Este seria el nº 0 ,entiendes?

pues segun como los tengas colocados ,asi has de modificar la fucion., pongamos que tienes que confirmar 15 campos ,y que todos estan seguidos ,y el primero tiene el indice nº 0, pues modifica la funcion asi:

function noVacio(form) {
var inicio=0 //indice del primer campo en este ejemplo 0

var total=15 // el numero de campos a comprobar ,del indice 0 al 14
for (i=inicio;i<total; i++){
if(form.elements[i].value==""){

alert("Campo inválido");
form.elements[i].focus();
return;
}

}

alert("Ok");
}


si los campos no estan consecutivos ,la cosa se complica un poco.



tendrias que definir un arreglo:

var campos=new Array(aqui van los numeros de indice de los campos separados por comas)

y luego:

for(i=0;i<campos.length;i++){
if(form.elements[campos[i]].value=""){
....

espero que te haya quedado claro.,

Saludos.

.

Última edición por programeitor; 20/03/2005 a las 09:33
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 23:46.