Foros del Web » Programando para Internet » Javascript »

"Resumir" Codigo.

Estas en el tema de "Resumir" Codigo. en el foro de Javascript en Foros del Web. Hola tengo un formulario de registro en el cual por cada textbox que se deja sin insertar texto sale el tipico mensajito "Debes ingresar un ...
  #1 (permalink)  
Antiguo 04/10/2010, 21:47
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 4 meses
Puntos: 26
Pregunta "Resumir" Codigo.

Hola tengo un formulario de registro en el cual por cada textbox que se deja sin insertar texto sale el tipico mensajito "Debes ingresar un texto". tengo muchas cajas y use fuerza bruta (1 por 1):

Código Javascript:
Ver original
  1. if(document.formulario.cajita.value==""){
  2. alert("Debe ingresar un texto");
  3. document.formulario.cajita.focus();
  4. return false;
  5. }

tengo 10 de estas jajaja, una para cada caja y me preguntaba si habia una forma de simplificar todo esto.

desde ya gracias.
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #2 (permalink)  
Antiguo 04/10/2010, 23:37
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: "Resumir" Codigo.

Puedes poner la función como validar(frm) y acceder a los campos con frm.campo , y después en el onsubmit usas this. También puedes construirte una función para validar varios tipos de capo, por ejemplo:
Código Javascript:
Ver original
  1. function valida(tipo, msg, campo){
  2.  switch(tipo){
  3.   case 'txt':
  4.    if(campo.value==''){
  5.     alert(msg);
  6.     return false;
  7.    }
  8.    break;
  9.   case 'num':
  10.    if(!/\d+/.test(campo.value)){
  11.     alert(msg);
  12.     return false;
  13.    }
  14.    break;
  15. //...
  16.  }
  17. }

Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 05/10/2010, 02:04
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Respuesta: "Resumir" Codigo.

Hola bocho0610

Yo te aconsejaría que usases frameworks de Javascript ya desarrollados, potentes, rápidos y sobre todo SUPER AMPLIOS en necesidad para que te lo haga solo.

YO uso "Jquery Validator Engine2 y tenga 4 campos mi formulario, o 56 campos.. me valida todo sin tener que crear funciones extra.

Simplemente, en el atributo "class" de cada campo tú le dices si es obligatorio, si es especial, su longitud máxima a escribir, si se pueden usar números, si se puede usar solo letras, si es email, etc, etc.

Te dejo el enlace del pluggin de jQery que considero que es importante: http://www.position-absolute.com/art...ion-is-a-mess/

Quizás haya gente que use otros sistemas de validación automáticos, estaría bien que se compartieran aquí!!!!

Un saludo y espero haber podido ayudarte.

Javier
  #4 (permalink)  
Antiguo 05/10/2010, 02:52
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: "Resumir" Codigo.

Hola:

No puedo estar de acuerdo en cargar toda un librería para algo tan sencillo como una validación

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 05/10/2010, 03:36
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Respuesta: "Resumir" Codigo.

Hola caricatos

No se que será peor o más problemático:

A) Cargar la librería completa para una simple validación de múltiples campos que no sabe muy bien cómo hacer este compañero.
B) que cree una función o un fragmento de código repetido 10, 15 o 36 veces (dependiendo de la cantidad de campos que se quiera validar, todos iguales).

Esta librería, pesa 27kb (comprimiéndola la podemos dejar en 20).

Además, quizás, con el descubrimiento de este tipo de librerías por parte de nuestro compañero, puede comenzar a ahorrar, mejorar y sobre todo, optimizar en tiempos de carga de ejecución, dado que estas librerías, están más optimizadas que validaciones manuales mediante programación estándar.

No creo que sea tan descabellado el hacer uso de este tipo de librerías par alguien que quizás (no lo se con seguridad, y en ningún momento es un comentario de infravaloración) quizás no es muy conocedor de Javascript.

Añado a favor de este sistema (no la librería que yo he puesto, sino muchas otras que existen para ello):

- La validación del usuario, saca una alerta y focaliza en el lugar donde hay un error...
Este sistema hará que cada vez que haya un error, o un campo sin relleno saque una alerta (osea, ¿26 alertas si no relleno nada?
La librería propuesta te marca VISUALMENTE los campos sin rellenar, y evitas la fea y molesta ventanita de alerta y sonidito de alerta, pudiendo personalizarlo por medio de estas librerías poniendo colores corporativos, fuentes al gusto, posicionarlo en el lugar de la pantalla que quieras,meter iconos que queramos, etc, etc.

Nuevamente, es una apreciación personal, que considero que para mejorar visualmente y técnicamente, meter X kb de más en la página, no va a afectar en demasía al desarrollo conjunto.

Un cordial saludo!!!

Javier
  #6 (permalink)  
Antiguo 05/10/2010, 17:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: "Resumir" Codigo.

Hola:

Pues eso de estar optimizado habría que discutirlo, y sobre un número grande de campos, si son del mismo tipo con un bucle y pocas florituras se puede validar de manera optima, y solo con una alerta (lo de los colores también sería fácil...

Un ejemplico sencillo:

var obligatorios = ["nombre", "telefono", "mensaje"];
function validar(f) {
var erroneos = new Array();
var mensajes = new Array();
for (i = 0, total = obligatorios.length; i < total; i++) {
if (f[obligatorios[i]].value == "") {
erroneos.push(obligatorios[i]);
mensajes.push("debe rellenar el campo " + obligatorios[i]);
}
}
if (erroneos.length > 0) {
alert(mensajes.join("\n");
f[erroneos.pop()].focus();
}
return (mensajes.length == 0)
}

Para validaciones algo más complejas, bastaría con usar la idea del post de _cronos2

Por cierto, el código lo puse "a capella", pero se puede ver que es bastante sencillo...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 06/10/2010, 02:40
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Respuesta: "Resumir" Codigo.

Hola caricatos

No discuto que para hacer esta simple validación, meter una librería de 27Kb, es demasiado PERO, si que digo que:
- Dependes de pasarle como parámetro a la función el formulario como objeto de referencia (por lo que debes de poner o una llamada en el submit o en el formulario que le pase dicho objeto como referencia (y quizás los niveles de programación en Javascript de la gente que lo necesite, no llegan a ese nivel).
- Dependes de poner los nombres exactamente igual para la función de como se llaman los campos, y si añades campos nuevos, has de añadirlos en la función
- Si validas 15 campos, a alerta de no haberlos rellenados puede ser muy larga (y a cierta resolución una alerta de más de 10-12 elementos (líneas) no se ve entera)
- Si me sale una alerta de 15 cosas.. no me voy a acordar de todo según me ponga de nuevo a rellenar los campos...

Repito que ESTOY DE ACUERDO EN NO METER 27KB en una página para una simple validación, pero nos parece simple a los que "más o menos" manejamos Javascript.. pero a la gente que no lo maneja, usar librerías de este tipo, que revisando la documentación lo tienen hecho... es más sencillo.

Además, la mayor esencia que le veo, es que sin depender de modificar funciones ni nada (solo has de personalizar el archivo de configuración para darle los colores y demás) tienes un atractivo sistema visual de errores (que SI, se puede conseguir por programación normal y corriente, pero esta persona que desconoce un poco el lenguaje Javascript, DEPENDE de ti, de mi, de quién sea para poder tenerlo en su proyecto, retrasándose en la entrega ya sea proyecto personal o profesional).

Y la dependencia de esa persona que se lo ha hecho, llegará al punto de que en el próximo proyecto, si tiene que validar un elemento SELECT... tendrá que pedirte qu ese lo hagas.. y si tiene que validar dentro de 4 proyectos un elemento CHECKBOX, RADIO .... dependerá de que se lo hagas.. y si quiere validar un campo email.. dependerá....

Y si, se que hay funciones que ya están hechas para validar estas cosas, y que buscando en el foro, hay mucho (yo tengo posteado de hace 4 o 5 años mi propio objeto de validador de formularios) pero igualmente, no tienen ninguno (o casi ninguno) documentación .. y nuevamente.. dependerá de su creador.

Considero que las librerías jQuery y demás, que se están usando repetidamente, son válidas para mucha gente por todo esto que comento.

VUELVO A DECIR: yo soy el primero que programa cosas en Javascriot desde CERO, por lo que ESTOY DE ACUERDO CONTIGO... pero añado estas ventajas de las librerías frente a gente que no conoce el lenguaje .

Un cordial saludo.

Javier
  #8 (permalink)  
Antiguo 06/10/2010, 10:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: "Resumir" Codigo.

Hola:

Siempre que se trate de proyectos tendremos que pensar en webmasters, y una validación es básicoi para un webmaster que se precie... y si no sabe el tema, simplemente está haciendo "intrusismo", y culpa de tanto intrusismo, los buenos, o mejor dicho, los verdaderos webmaster pierden muchos trabajos que necesitan...

Me acuerdo que en la Universidad hicimos un grupo con otro compañero para presentar un trabajo en html (incluso no me refiero a javascript), y no sabía enlazar en un sistema de marcos (no existía la polémica de si usarlos o no)... y todos sus trabajos se basaban en flash, y sus scripts empezaban por "MM_"

Las validaciones de otros elementos son también bastante sencilla, incluso es muy fácil documentarse (hasta yo mismo subí un tutorial: El abc de los formularios)

Y por último, las librerías no son tan fáciles... buena muestra de ello es nuestro propio foro.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: Ninguno
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 03:38.