Javascript 按键后如何激活功能?

Javascript 按键后如何激活功能?,javascript,function,search,autocomplete,Javascript,Function,Search,Autocomplete,我正在为我的网站建立一个自动完成工具。我希望它搜索部分匹配(仅当“*”是最后一个字符时才有效) 所以我有这个代码: $('.search form')。单击(函数(){ var self=这个; event.preventDefault?event.preventDefault():event.returnValue=false; var searchfield=$('.input block level'); searchfield.val(searchfield.val()+“*”);

我正在为我的网站建立一个自动完成工具。我希望它搜索部分匹配(仅当“*”是最后一个字符时才有效)

所以我有这个代码:


$('.search form')。单击(函数(){
var self=这个;
event.preventDefault?event.preventDefault():event.returnValue=false;
var searchfield=$('.input block level');
searchfield.val(searchfield.val()+“*”);
self.submit();
});

我假设正在单击的.search表单是整个表单?因此,当您在搜索框中单击以进行键入时,您的click对象的整个回调函数正在运行,其中包括self.submit()


我认为您需要将这两个功能分离到各自的事件处理程序中。searchfield.val(searchfield.val()+“*”);应在有人单击$('.input块级别')时运行;,提交功能应该附加到提交按钮本身

如果我理解正确,您正在寻找的是一个用于
keypress
keyup
事件的附加事件侦听器。但每次事件触发时,您都必须更换星号。试试这个:

$('.input block level')。按键(功能(e){
e、 预防默认值();
e、 停止传播();
如果(/[a-z]/ig.测试(e.键)){
$(this.val($(this.val()).replace(/\*$/g',)+e.key+'*');
}
});

在这个问题中,“java”标记必须做什么?当然。。。这就是$('.search form').**click***所做的!对点击事件做出反应…你就是那个人!!!非常感谢你!它起作用了!小问题是,它只适用于物理键盘,当我在手机上键入时,它会显示“undefined*”——知道如何解决这个问题吗?当我按enter键时,它也会打印“enter”。是否可以将此函数仅用于a-z?当然,我已经编辑了解决方案并添加了一个RegExp@Marcintanczyk感谢您的更新,但这不是我需要的。我没有使用java脚本就解决了这个问题。再次感谢