Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] saber si un texto es mayor que un input.

Estas en el tema de saber si un texto es mayor que un input. en el foro de Javascript en Foros del Web. Buenas tengo un problema mi pantalla es responsive con lo cual no se el tamaño total de los input, me gustaría que si el usuario ...
  #1 (permalink)  
Antiguo 27/06/2017, 03:31
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
saber si un texto es mayor que un input.

Buenas tengo un problema mi pantalla es responsive con lo cual no se el tamaño total de los input, me gustaría que si el usuario escribe un texto mas grande de lo que abarca el input que se pudiera detectar de alguna manera.

Gracias y perdón por las molestias.
  #2 (permalink)  
Antiguo 27/06/2017, 04:18
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: saber si un texto es mayor que un input.

También me puede valer cualquier solución que controle cuando hay overflow del campo.
Gracias.
  #3 (permalink)  
Antiguo 27/06/2017, 05:27
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: saber si un texto es mayor que un input.

No entiendo muy bien por qué necesitas eso, pero así a priori solo se me ocurre que cojas el texto del input y lo introduzcas en un nuevo elemento que creas a través de javascript. A este le pones el estilo CSS de nowrap y midas su ancho. Lo comparas con el ancho del input y ya está.

Código Javascript:
Ver original
  1. var input = document.getElementById( "myImput" );
  2. var value = input.value;
  3.  
  4. var p = document.createElement( "P" );
  5. p.style.position= "absolute";
  6. p.style.opacity = "0";
  7. p.style.whiteSpace = "nowrap";
  8. p.style.zIndex= "-1000";
  9. p.innerHTML = value;
  10.  
  11. document.body.appendChild( p );
  12.  
  13. if( p.offsetWidth > input.offsetWidth ) {
  14.     console.log( "El texto del input es más ancho que el input" );
  15. } else {
  16.     console.log( "El texto del input es menos ancho que el input" );
  17. }
  18.  
  19. p.remove();

Ten presente que tendrás que tener en cuenta el tamaño y el tipo de la fuente del input para aplicarlo al elemento que crees, puede que tengas que tener en cuenta también el padding y el borde. Pero bueno, esta es la idea general, ya solo tienes que pulirla.
__________________
Diseño Web - Arisman Web
  #4 (permalink)  
Antiguo 27/06/2017, 06:43
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: saber si un texto es mayor que un input.

Gracias.

realmente lo quiero para que me salga un tooltip cuando sea mayor el texto al input.

el código ya existía y lo que hacía era crear un span con el texto y comprobaba los width de los objetos creados, lo malo es que creaba un span por cada input.

Había pensado borrar los elementos creados pero por alguna razón la segunda vez que se ejecutaba el código fallaba y siempre decía que era falso por muchos caracteres que tuviera el input.

lo he cambiado por esto.

if (parseInt(element.scrollWidth,10) >= parseInt(element.offsetWidth,10)) {

Etiquetas: input, mayor, text
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 19:30.