Foros del Web » Programando para Internet » Javascript » Frameworks JS »

como se valida un textarea

Estas en el tema de como se valida un textarea en el foro de Frameworks JS en Foros del Web. Pregunta simple, pero ya probe con esto y no puedo validar un textarea: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original if ( $ ( this ...
  #1 (permalink)  
Antiguo 14/09/2010, 18:59
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
como se valida un textarea

Pregunta simple, pero ya probe con esto y no puedo validar un textarea:

Código Javascript:
Ver original
  1. if ($(this).val().length < 4 || $(this).val() == -1 || $(this).val() == '')
  #2 (permalink)  
Antiguo 14/09/2010, 20:15
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: como se valida un textarea

bueno con $('#id').val() es la forma de obtener el valor cual es exactamente la validacion que tratas de hacer?, podria ser que el selector que usas no esta bien?
  #3 (permalink)  
Antiguo 14/09/2010, 20:17
Avatar de echoTREBOR  
Fecha de Ingreso: marzo-2010
Ubicación: Venezuela inc.
Mensajes: 56
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: como se valida un textarea

y asi?

if($(this).val(""){

....;

}
  #4 (permalink)  
Antiguo 14/09/2010, 20:26
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: como se valida un textarea

No se por que lo de val() no funciona. O quizás haya algún otro error. Mi script para validar inputs y textareas es este:
Código javascript:
Ver original
  1. $(document).ready(function() {             
  2.    
  3.     respuestas =new Array();
  4.  
  5.     $("form input[name=guardar]").click(function(event)
  6.     {                  
  7.         $("span.incompleto").removeClass("incompleto");
  8.        
  9.         $("input, textarea").each(function(index) {
  10.            
  11.             if ($(this).val().length < 4 || $(this).val() == -1 || $(this).val() == '')
  12.             {
  13.                 respuestas[index] = false; 
  14.                 $(this).focus();       
  15.                 $(this).prev(".label").addClass("incompleto");
  16.             }
  17.             else   
  18.             {
  19.                 respuestas[index] = true;
  20.             }
  21.         });
  22.        
  23.         if ( $.inArray(false, respuestas) != -1)
  24.         {          
  25.             $(".mensaje").text("Te falta completar datos.").css("display", "block");;
  26.             return false;  
  27.         }  
  28.         else
  29.         {
  30.             $(".mensaje").addClass("enviando").text("Enviando...");
  31.             return true;
  32.         }  
  33.     });
  34.  
  35. });
  #5 (permalink)  
Antiguo 14/09/2010, 20:41
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: como se valida un textarea

aunque no tiene nada que ver con lo que preguntas otra forma de definir un arrglo es arreglo = []; me gusta mas de esa forma no se tal vez a ti tambien te pueda gustar asi jeje.

volviendo al tema, lo veo bien, vuelvo a la pregunta que hice antes form input[name=guardar], seguro que estas seleccionando el boton que quieres?, otra cosa que se me ocurrio.

al hacer $("input, textarea"), estas tambien seleccionando los botones, podra tener alguna repercusión en tu validacion?.

tambien podrias probar con $(this).attr('value'), pero igual no creo que sea eso.
  #6 (permalink)  
Antiguo 15/09/2010, 06:13
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: como se valida un textarea

@tredio:

no conocía esa manera de declarar arreglos. La probaré.

Con el primer selector que señalaste lo que hago es elegir un boton submit. Y funciona bien. De hecho los demas elementos validan (se ponen en rojo).

con $("input, textarea") pretendo seleccionar y recorrer tanto los inputs como los textareas. El script no se detiene en ningun momento y todos los input quedan validados. Pero los texteareas no.

Sin embargo, ayer cuando probaba cosas, hubo un momento en donde los textarea validaron. No se como, pero fue cuando me equivoqué con el condicional :o\
  #7 (permalink)  
Antiguo 15/09/2010, 06:59
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: como se valida un textarea

Es muy raro porque si hago esto, me pone los textareas en rojo:

$(this).val().length > 5

Es decir, si pruebo que el contenido tenga más de 5 caracteres, supuestamente. Lo cual es false porque yo no escribo nada ahí.

No me funciona esto ni en Opera ni en Firefos ni en Chrome ni en Explorer:

$(this).val().length == 0

Tampoco seleccionando así:

$(this).attr('value')

Ni así:

$(this).text()

Este es el html:
Código HTML:
Ver original
  1. <span class="label">Keywords</span>
  2.                     <input type="text" name="keywords" value="" />
  3.  
  4. <span class="label">Descripcion</span>
  5.                     <textarea name="descripcion" rows="9" cols="20">
  6.                     </textarea>
  7.  
  8.                     <span class="label">Instrucciones</span>
  9.                     <textarea name="instrucciones" rows="9" cols="20">
  10.                     </textarea>
  11.  
  12.  <span class="label">Foto</span>
  13.  <input type="file" name="foto" value="" />

Me valida hasta el input type file, pero no los textareas :o(
  #8 (permalink)  
Antiguo 15/09/2010, 07:08
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: como se valida un textarea

Bueno, finalmente recurrí a una función trim y ahora me funciona:
Código Javascript:
Ver original
  1. function ltrim(s) {
  2.    return s.replace(/^\s+/, "");
  3. }
  4.  
  5. function rtrim(s) {
  6.    return s.replace(/\s+$/, "");
  7. }
  8.  
  9. function trim(s) {
  10.    return rtrim(ltrim(s));
  11. }
  12. ...
  13. value = trim( $(this).val() );
  14.            
  15. if (value.length < 4) ...

EDITADO: Ya no necesito trim(). El gran problema esta en el html. Los textarea tienen que cerrarse en el mismo renglon. Si no, incluso dan problemas de enfoque del cursor!
<textarea name="instrucciones" rows="9" cols="20"></textarea>



Última edición por mayid; 15/09/2010 a las 07:13
  #9 (permalink)  
Antiguo 15/09/2010, 09:49
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: como se valida un textarea

que raro eso no?, bueno por lo menos ya solucionaste. y sobre lo de los arreglos, tambien es posible crear objetos asi objeto = {};. saludos
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D

Etiquetas: textarea
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 09:21.