Como faço para anexar um prefixo para cada palavra-chave em enviar de campo de entrada?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu tenho um campo de entrada que, quando a tecla Enter é pressionada (como não existe campo submit) Gostaria javascript para adicionar a frente @ caráter de cada palavra-chave quando o formulário é enviado.

Por exemplo:

O texto seria inserido como ...

casa, pessoal, chamada

Mas o valor que é apresentado seria ...

@home, @personal, @call

Até agora eu tenho:

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

Solução

Você teria que dividir o valor do campo de espaços e, em seguida, adicionar um @ na frente de cada valor da matriz, em seguida, acrescentar que volta como o valor para a entrada. Também eu recomendo ouvir para o evento submeter do formulário em vez da tecla enter no 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
 });

Outras dicas

Isso deve fazer o truque:

$("#inputfield").keydown(function(e){
if (e.keyCode == 13) {
    $('#inputfield').val($('#inputfield').val().split(',').map(function(item) {
            return '@'+item;
         }).join(',')); 
    $(this).submit();
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top