Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

508
Vistas
¿Cómo saber si el texto en un cuadro de texto está seleccionado?

Tengo cuadros de texto <input type='text'> que solo permiten caracteres numéricos y no permiten que el usuario ingrese un punto (.) más de una vez. El problema es que si se selecciona el texto en el cuadro de texto, el usuario tiene la intención de sobrescribir el contenido con un punto, ¡por lo tanto, lo permite! La pregunta es, ¿cómo puede saber en javascript si el texto en ese cuadro de texto está seleccionado o no?

Gracias

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Lo siguiente le dirá si todo el texto está seleccionado o no dentro de una entrada de texto en todos los navegadores principales.

Ejemplo: http://www.jsfiddle.net/9Q23E/

Código:

 function isTextSelected(input) { if (typeof input.selectionStart == "number") { return input.selectionStart == 0 && input.selectionEnd == input.value.length; } else if (typeof document.selection != "undefined") { input.focus(); return document.selection.createRange().text == input.value; } }
over 4 years ago · Santiago Trujillo Denunciar

0

Respuesta específica de 2017 : se enfrentó al mismo problema recientemente.

Permitíamos a los usuarios ingresar solo 3 dígitos a la vez. Cuando el usuario intentó ingresar el cuarto carácter, devolvimos falso.

Esto se convirtió en un problema cuando el usuario tenía una selección e intentaba sobrescribir los valores.

Tomando una pista de la respuesta de Tim. Entendí que quería ver si el selection value era el mismo que el input's value .

En los navegadores modernos lo logré haciendo:

 document.getSelection().toString() === input.value // edited

Espero que esto ayude a alguien.

over 4 years ago · Santiago Trujillo Denunciar

0

Para cualquiera que necesite el código para acceder al texto seleccionado dentro de un cuadro de texto, aquí hay una versión mejorada:

http://jsfiddle.net/9Q23E/527/

 function getSelection(textbox) { var selectedText = null; var activeElement = document.activeElement; // all browsers (including IE9 and up), except IE before version 9 if(window.getSelection && activeElement && (activeElement.tagName.toLowerCase() == "textarea" || (activeElement.tagName.toLowerCase() == "input" && activeElement.type.toLowerCase() == "text")) && activeElement === textbox) { var startIndex = textbox.selectionStart; var endIndex = textbox.selectionEnd; if(endIndex - startIndex > 0) { var text = textbox.value; selectedText = text.substring(textbox.selectionStart, textbox.selectionEnd); } } else if (document.selection && document.selection.type == "Text" && document.selection.createRange) // All Internet Explorer { var range = document.selection.createRange(); selectedText = range.text; } return selectedText; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda