みんな、ありがとう。
実際、私の問題はもう少し難しかった: 無効なキーをフィルタリングし、2 つの異なる方法で有効なキーの ajax 呼び出しを開始する: ユーザーが SPACE/COMMA を押した場合、または入力中に。コードは次のとおりです。
$(document).ready(function(){
$('#post_tags').keypress(function(e){
var txt = String.fromCharCode(e.which);
console.log(txt + ' : ' + e.which);
if(txt.match(/^[^A-Za-z0-9+#\-\.]+$/))
{
return false;
}
})
$('#post_tags').keyup(function(event){
code = event.which
var token = String.fromCharCode(code)
var txt = $(this).val()
//create a new tag, take it out of textfield
if (code == 32 || code == 188)
{
console.log("AJAX new word keyup")
$.ajax({
type: 'get',
url: '/posts/tags_change',
dataType: "json",
data: "query=" + $(this).val(),
success: function(data) {
console.log(data)
$('#post_tags').val('')
},
error: function(data) {
alert("Ajax error")
}
});
}
else
{
//do autocomplete ajax
console.log("typing:" + txt)
}
});
}))
これが 100% 正しいかどうかはわかりません。