Foros del Web » Programando para Internet » Javascript »

Error de Novato JS

Estas en el tema de Error de Novato JS en el foro de Javascript en Foros del Web. Compañeros como estan?, dejo un pequeño problema de novato. No me toma el "cantidad[ctr]". El problema es que me esta tomando a "cantidad[ctr]" como "cantidad" ...
  #1 (permalink)  
Antiguo 29/04/2012, 19:27
 
Fecha de Ingreso: octubre-2011
Ubicación: Montevideo
Mensajes: 22
Antigüedad: 12 años, 7 meses
Puntos: 1
Error de Novato JS

Compañeros como estan?, dejo un pequeño problema de novato. No me toma el "cantidad[ctr]". El problema es que me esta tomando a "cantidad[ctr]" como "cantidad" y no como "cantidad0" porque si no le pongo el for y sustituyo los valores si funciona. Gracias!.

Código HTML:
var form=document.form;
 
for(var ctr = 0 ; ctr < current_form.length; ctr++){
    if(form.cantidad[ctr].value==0 ){
        alert("Ingrese la cantidad a solicitar");
        form.cantidad[ctr].value="";
        form.cantidad[ctr].focus();
        return false;
    }else{
     current_form.submit()
    }
}
  #2 (permalink)  
Antiguo 29/04/2012, 21:33
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Error de Novato JS

Hola, si tus elementos se llaman cantidad0, cantidad1, ... y quieres llamarlos con el form, lo ideal es hacer.

Código Javascript:
Ver original
  1. form["cantidad"+ctr].value/focus()/etc.

Saludos.
  #3 (permalink)  
Antiguo 29/04/2012, 21:34
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: Error de Novato JS

ve a la consola, y publica aqui lo que te da como respuesta de console.log(form)
no se me ocurre otra cosa que form.cantidad[0].value no exista
  #4 (permalink)  
Antiguo 29/04/2012, 21:37
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: Error de Novato JS

Cita:
Iniciado por IXtremeLT Ver Mensaje
Hola, si tus elementos se llaman cantidad0, cantidad1, ... y quieres llamarlos con el form, lo ideal es hacer.

Código Javascript:
Ver original
  1. form["cantidad"+ctr].value/focus()/etc.

Saludos.
justo respondiste, me parece que eso quizo decir ( que es correcto lo tuyo ) :D
una cosa mas es que le conviene almacenar los campos como un array, y no como cantidad0, cantidad1, por que asi no podria hacer el for.
  #5 (permalink)  
Antiguo 01/05/2012, 10:50
 
Fecha de Ingreso: octubre-2011
Ubicación: Montevideo
Mensajes: 22
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error de Novato JS

Sigue sin funcionarme, me dice que la operacion depues del punto (".") no es valida .

Ya probe varias cosas pero no puedo hacer que no tome a ["cantidad"+ctr] como cantidad y no como cantidad0, cantidad1, etc . .

LO PEOR ES QUE SI LE PONGO UN "0" PARA PROBAR EN VEZ DE "ctr" FUNCIONA!!!! . . . .

no consigo concatenar correctamente el "cantidad" con el "ctr" . . . . .

Si lo dejo como estaba me dice:

Fecha: 01-05-12 13:50:31
Error: form.cantidad is undefined

y claro que no esta definido porque no se llama cantidad sino cantidad0, cantidad1, etc ( porque es dinamico).!!!!
  #6 (permalink)  
Antiguo 01/05/2012, 18:51
 
Fecha de Ingreso: octubre-2011
Ubicación: Montevideo
Mensajes: 22
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error de Novato JS

alguna idea? u otra forma de hacerlo?
  #7 (permalink)  
Antiguo 01/05/2012, 21:08
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: Error de Novato JS

mira, lo que yo te recomiendo, es
1. mantener la variable current_form ( que sea el elemento del form )
2. crear una variable global que luego guarde los elementos del form ( por ejemplo )
var Form = [];
3. crear una función que agrege elementos a Form
function agregaraForm(entrada){
for(ID in entrada){
Form.push(document.getElementById(entrada[ID]));
}
}
4.agregar los elementos asi
agregaraForm(['inputnumeros','inputTangas']); /wee no se me ocurria otra cosa XD
5.crear la funcion que se ejecuta en el submit ( adaptación de tu codigo )
function hacerSubmit(){
for(var ctr = 0 ; ctr < Form.length; ctr++){
if(Form[ctr].value==0 ){
alert("Ingrese la cantidad a solicitar");
Form[ctr].value="";
Form[ctr].focus();
return false;
}else{
current_form.submit();
}
}
}

y listo :D

espero que te sirva ( me tardo bastante ademas que se me recargo la pagina sin queres cuando lo estaba terminando la primera vez )
saludos :D

Etiquetas: funcion, js
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 11:07.