Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Validar textarea para evitar sólo espacios en blanco

Estas en el tema de Validar textarea para evitar sólo espacios en blanco en el foro de Javascript en Foros del Web. Hola a todos, buen día. Estoy batallando con algo que a la vista parece muy simple, pero que en este momento no no puedo solucionar ...
  #1 (permalink)  
Antiguo 31/10/2016, 11:45
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 8 meses
Puntos: 0
Exclamación Validar textarea para evitar sólo espacios en blanco

Hola a todos, buen día. Estoy batallando con algo que a la vista parece muy simple, pero que en este momento no no puedo solucionar

Resulta que tengo un textarea en la cual valido que no se guarde el contenido en bñaco, esto es, que no tenga caracteres y se guarde en mi bd. Pero el problema me vien cuando sólo teclean espacios en blanco. He querido valida con expresiones regulares, con tri pero lo que he obtenido es que me elimina los espacios en blanco de todo el texto junto.

¿Alguien tiene alguna forma de poder validar que no sean sólo espacios en blanco los que tengo en mi textarea?

Saludos.
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.
  #2 (permalink)  
Antiguo 01/11/2016, 12:38
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años
Puntos: 10
Respuesta: Validar textarea para evitar sólo espacios en blanco

Bueno, la función trim funciona en la mayoría de navegadores la verdad, incluso puedes tener un polyfill por si acaso, pero al grano. Tan solo tienes que hacer:

Código Javascript:
Ver original
  1. function validaValorDeTextarea(){
  2.     var texto = document.getElementById('mi-textarea').value.trim();
  3.     !!texto.length
  4.         ? alert("El valor tecleado sin espacios es: '" + texto + "'")
  5.         : alert("El campo está vacío!")
  6. }

Con trim() se darán los siguientes valores:

Código Javascript:
Ver original
  1. > Para "Texto" obtendrás "Texto"
  2.  
  3. > Para "" obtendrás ""
  4.  
  5. > Para "             " obtendrás ""
  6.  
  7. > Para "   Texto con espacios al principio y final  " obtendrás "Texto con espacios al principio y final"

Es decir, trim solo quita los especios al inicio y final. Si el texto se compone solo de espacios, el texto queda vacío. Si quieres usar trim sin ningún peligro (aunque está desde IE9 ya), puedes usar el polyfill de MDN por ejemplo https://developer.mozilla.org/es/doc.../Trim#Polyfill

Código Javascript:
Ver original
  1. if (!String.prototype.trim) {
  2.   (function() {
  3.     // Make sure we trim BOM and NBSP
  4.     var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
  5.     String.prototype.trim = function() {
  6.       return this.replace(rtrim, '');
  7.     };
  8.   })();
  9. }
  #3 (permalink)  
Antiguo 01/11/2016, 13:30
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Validar textarea para evitar sólo espacios en blanco

Es obvio que te darán mejores métodos que el mio, pero a mi rápidamente se me ocurre algo así:

Código Javascript:
Ver original
  1. function is_empty(id){
  2. var s = document.getElementById(id).value;
  3. s = s.trim();
  4. s = s.replace(" ", "");
  5.     if(s == "" || s == null){ return true; }
  6. return false;
  7. }

  #4 (permalink)  
Antiguo 01/11/2016, 13:31
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Validar textarea para evitar sólo espacios en blanco

¿Qué expresiones regulares has intentado?

Código BASH:
Ver original
  1. /^\s*$/
Si valida, es que sólo tiene espacios en blanco.
  #5 (permalink)  
Antiguo 02/11/2016, 11:36
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Validar textarea para evitar sólo espacios en blanco

He usado las siguientes:

/[A-Za-z\s]/

como función en un replace la siguiente -> /^\s+|\s+$/g,''

también esta -> /^\s*$/

entre otras que ya he deshechado....

Funcionan para eliminar espacios en blalnco. Pero creo que mi problema es un poco más que sólo un textarea y hasta ahora caigo en cuenta.

No estoy utilizando sólo un textarea, es el editor CKEditor, y lo que sucede es que cuando pongo sólo espacios en blanco, me gener un párrafor con espacios en blanco en html

<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;</p>

por lo que al aplicar la expresión regular no aplica.

He estado revisando la documentación del editor y hasta ahora nada para este caso en especial.

Si saben de algo que se pueda hacer, se los agradeceré.
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.
  #6 (permalink)  
Antiguo 02/11/2016, 15:58
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Validar textarea para evitar sólo espacios en blanco

https://jsfiddle.net/t1r1kvju/
  #7 (permalink)  
Antiguo 03/11/2016, 11:24
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Validar textarea para evitar sólo espacios en blanco

¡¡¡Muchas gracias marlanga!!!, me ha funcionado de maravilla.
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.
  #8 (permalink)  
Antiguo 03/11/2016, 11:26
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Validar textarea para evitar sólo espacios en blanco

¡¡¡Muchas gracias marlanga!!!, me ha funcionado de maravilla.

Así ha quedado mi código y funciona a la perfección

Código Javascript:
Ver original
  1. document.getElementById('envio').addEventListener('click', function(){
  2.    if (/^\s*$/.test(CKEDITOR.instances.ckeditor.document.getBody().getText())) {
  3.       bootbox.alert("Debe de agregar texto a la actividad.");
  4.    } else {
  5.       $("#envio").attr('disabled', 'disabled');
  6.       submitForm();
  7.    }
  8. });
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.

Etiquetas: blanco, espacios, text, 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 10:58.