按键后如何激活功能?

时间:2017-01-28 21:37:44

标签: javascript function search autocomplete

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

所以我有这段代码:



<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;
&#13;
&#13;

它的作用是它给了我&#34; *&#34;在点击搜索字段后立即提交。

我需要在点击后立即将星号作为最后一个符号的功能(所以当人开始输入&#34; *&#34;是最后一个字符时)并等待人员点击提交(或不是) 。

任何想法?

请帮忙

2 个答案:

答案 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)),
                                                                                                                                 ^~~~~~~