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

172
Vistas
Cómo eliminar de la última letra y luego trabajar en la función getSelectedText

¿Cómo eliminar el último carácter de un cuadro de texto de entrada usando JavaScript? Hago esta pequeña tarea Su función es que cuando escribimos una letra en la entrada, comprueba el número de índice del valor en la cola. Y los elegiremos todos. Y seleccionaremos a todos en la entrada menos a la letra que hayamos escrito.

  1. Ahora quiero que cuando elimine una letra, se elimine y se ejecute la función getSelectedText.
  2. Y cuando presiono el botón de control o cualquier otra tecla Esc. Entonces, mostremos todos los valores en el Array.

Código HTML:

 <input id="autocomplet" onkeyup="filter(this.value);">

Código JavaScript:

 <script> var data = document.querySelector('#autocomplet'); var myArray = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]; function filter(letter) { var results = []; var len = myArray.length; for (var i = 0; i < len; i++) { if (myArray[i].indexOf(letter) == 0){ results.push(myArray[i]); data.value = results; getSelectedText(data,letter); } } if((event.keyCode == 46) || (event.keyCode == 8)){ data.value=''; } } function getSelectedText(data,letter) { data = data.value; var datalength = data.length; var letterlength = letter.length; autocomplet.setSelectionRange(letterlength,datalength); } </script>
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

No sé si esto ayuda, pero aquí está.

 var data = document.querySelector('#autocomplet'); var myArray = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]; function filter(letter) { var results = []; var len = myArray.length; if ((event.keyCode == 46) || (event.keyCode == 8)) { return getSelectedText(data, letter); // data.value = ''; } for (var i = 0; i < len; i++) { if (myArray[i].indexOf(letter) == 0) { results.push(myArray[i]); data.value = results; getSelectedText(data, letter); } } } function getSelectedText(data, letter) { data = data.value; var datalength = data.length; var letterlength = letter.length; autocomplet.setSelectionRange(letterlength, datalength); }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede tomar la entrada y ponerla en una cadena. Luego tome la longitud de la entrada y haga un ciclo for que se ejecutará una vez menos que el número de la longitud. Después de eso, obtenga letra por letra para reconstruir la frase en una nueva variable.

 let phrase = “your_phrase.”; let x = 0; let p2=“”; let n = 0; while(true) { if(phrase == null){break;} x++ } x—-; //maybe try to delete this if 1 extra letter deleted. for(n; n <= x-1;x++) { p2 = p2 - phrase[n]; }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Considera lo siguiente. Este es un ejemplo de jQuery, pero el mismo algoritmo debería aplicarse a JavaScript.

 $(function() { var myArray = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]; function checkEntry(event) { console.log(event.keyCode); if (event.keyCode == 8) { resetVal(event.target); } filter($(event.target).val(), event.target); } function resetVal(target) { var val = $(target).val(); var sel = window.getSelection().toString(); window.getSelection().empty(); console.log("Reset", val, sel); $(target).val(val.slice(0, val.length - 1)); } function filter(term, target) { var result = []; console.log("Filter", term); $.each(myArray, function(i, v) { if (v.indexOf(term) == 0) { result.push(v); } }); $(target).val(result.toString()); getSelectedText($(target).val(), term); } function getSelectedText(data, letter) { console.log("Select", data, letter); $("#autocomplet").get(0).setSelectionRange(letter.length, data.length); } $("#autocomplet").keyup(checkEntry); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input id="autocomplet" type="text" />

Alterno

Considere lo siguiente que usa jQuery UI Autocompletar

 $(function() { var myArray = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]; function getSelectedText(target, data, letter) { $(target).get(0).setSelectionRange(letter.length, data.length); } $("#autocomplet").autocomplete({ source: function(request, response) { var results = []; $.each(myArray, function(index, item) { if (item.indexOf(request.term) == 0) { results.push(item); } }); response(results); }, minLength: 1, select: function(e, ui) { var cVal = $(this).val(); var sel = ui.item.label; $(this).val(sel); getSelectedText(this, sel, cVal); return false; } }); });
 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css"> <script src="https://code.jquery.com/jquery-3.6.0.js"></script> <script src="https://code.jquery.com/ui/1.13.1/jquery-ui.js"></script> <input id="autocomplet" type="text" />

Recursos:

  • https://api.jqueryui.com/autocomplete/#option-source
  • https://api.jqueryui.com/autocomplete/#event-select
about 4 years ago · Juan Pablo Isaza 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