Como faço para anexar um prefixo para cada palavra-chave em enviar de campo de entrada?
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(); }
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