我正在为我的网站构建自动完成工具。我希望它能够搜索部分匹配(仅当" *"是最后一个字符时才有效)
所以我有这段代码:
<script type="text/javascript">
$('.search-form').click(function () {
var self = this;
event.preventDefault ? event.preventDefault() : event.returnValue = false;
var searchfield = $('.input-block-level');
searchfield.val(searchfield.val() + "*");
self.submit();
});
</script>
&#13;
它的作用是它给了我&#34; *&#34;在点击搜索字段后立即提交。
我需要在点击后立即将星号作为最后一个符号的功能(所以当人开始输入&#34; *&#34;是最后一个字符时)并等待人员点击提交(或不是) 。
任何想法?
请帮忙
答案 0 :(得分:0)
我假设点击的.search表单是整个表单?因此,当您在搜索框中单击以键入时,将运行单击对象的整个回调函数,其中包括self.submit()。
我认为你需要将这两个功能分成他们自己的事件处理程序。 searchfield.val(searchfield.val()+“*”);应该在有人点击$('。input-block-level');时运行,并且提交函数应该附加到提交按钮本身。
答案 1 :(得分:0)
如果我理解正确,您正在寻找的是keyup
或$('.input-block-level').keypress(function(e) {
e.preventDefault();
e.stopPropagation();
if(/[a-z]/ig.test(e.key)) {
$(this).val($(this).val().replace(/\*$/g,'') + e.key + '*');
}
});
事件的附加事件监听器。但是每次事件发生时你都必须更换星号。试试这个:
Compiling hyper v0.9.17
/root/.cargo/registry/src/github.com-88ac128001ac3a9a/hyper-0.9.17/src/header/common/accept_language.rs:62:23: 62:30 error: macro undefined: 'langtag!'
/root/.cargo/registry/src/github.com-88ac128001ac3a9a/hyper-0.9.17/src/header/common/accept_language.rs:62 qitem(langtag!(en;;;US)),
^~~~~~~
/root/.cargo/registry/src/github.com-88ac128001ac3a9a/hyper-0.9.17/src/header/common/accept_language.rs:63:34: 63:41 error: macro undefined: 'langtag!'
/root/.cargo/registry/src/github.com-88ac128001ac3a9a/hyper-0.9.17/src/header/common/accept_language.rs:63 QualityItem::new(langtag!(en), Quality(500)),
^~~~~~~
/root/.cargo/registry/src/github.com-88ac128001ac3a9a/hyper-0.9.17/src/header/common/accept_language.rs:64:23: 64:30 error: macro undefined: 'langtag!'
/root/.cargo/registry/src/github.com-88ac128001ac3a9a/hyper-0.9.17/src/header/common/accept_language.rs:64 qitem(langtag!(fr)),
^~~~~~~