¿Cómo adjunto un prefijo a cada palabra clave en el envío del campo de entrada?

StackOverflow https://stackoverflow.com/questions/801958

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo un campo de entrada que cuando se presiona la tecla Intro (ya que no hay un campo de envío) Me gustaría que javascript agregue el carácter @ debajo de cada palabra clave cuando se envía el formulario.

Por ejemplo:

El texto se ingresaría como ...

inicio, personal, llamada

Pero el valor que se envía sería ...

@home, @personal, @call

Hasta ahora tengo:

$("#inputfield").keydown(function(e){
    if (e.keyCode == 13) {
        $("#inputfield") // Not sure what to add next
        .submit();
    }
¿Fue útil?

Solución

Tendrías que dividir el valor del campo en los espacios y luego agregar una @ al frente de cada valor de la matriz, luego agregarlo de nuevo como el valor para la entrada. También recomiendo escuchar el evento de envío del formulario en lugar de la tecla de entrada en el campo de entrada.

 $('#form').submit( function() {
   var words = $('#inputfield').val().split(' ');
   var newwords = new Array();
   for(i=0, x=words.length; i<x; i++){
    newwords.push('@'+words[i]);
   }
   $('#inputfield').val( newwords.join(' ') );
   //we do not return false because we want the form to submit
 });

Otros consejos

Esto debería hacer el truco:

$("#inputfield").keydown(function(e){
if (e.keyCode == 13) {
    $('#inputfield').val($('#inputfield').val().split(',').map(function(item) {
            return '@'+item;
         }).join(',')); 
    $(this).submit();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top