从文本字段捕获数据时如何忽略自动完成值?

时间:2013-07-01 14:37:21

标签: php jquery mysql ajax autocomplete

我最近在我的网站上实现了一个搜索框,它可以自动完成关键字,从而获得良好的效果。我想实现一个隐藏的部分,以了解我的注册访问者搜索的搜索查询是什么。

我在搜索框中添加了隐藏的用户名,当用户搜索任何内容时,名称和搜索查询都会保存在另一个表中。由于自动完成,数据每秒保存一次;所以如果有人搜索“笔记本电脑”,我们会得到:

**ID  username  Searchdata srtime**  
1    user1234   L  1372513199            
2    user1234   La 1372513200  
3    user1234   Lap 1372513201   
4    user1234   Lapt 1372513202   
5    user1234   Lapto 1372513203  
6    user1234   Laptop 1372513204

jQuery代码:

$('#search_box').keyup(function() { // Other things });

如何只保存最终搜索字词并忽略自动完成值?

2 个答案:

答案 0 :(得分:1)

您应该使用.blur()代替.keyup()

这样,当控件失去焦点时,而不是每次按下一个键时都会提交数据。

答案 1 :(得分:0)

请按照以下步骤操作。

  1. 将数据保存在隐藏字段中
  2. 更新密钥上的隐藏字段。
  3. 当用户从搜索字段中焦点时保存查询。
  4. Javascript代码

    $('#search').keyup(function(){  
        $('#searchQuery').val($('#search').val());
    });
    
    $('#search').focusout(function(){  
         alert($('#searchQuery').val()); //this will return final query
     });
    

    html代码

    <input type="text" id="search">
    <input type="hidden" id="searchQuery">