html通过JS/jQuery实现 实时监听输入框input的内容

最近在做一个功能:联想搜索功能。具体实现做法如下:通过实时监听输入框input的内容,来实时发起网络请求,向后台获取联想到的搜索内容并展示到前台。那么该如何实现input的实时监听呢

做法一(jQuery):on()方法里面的input事件。兼容性好。

<html>

<head>
  <style>
  ....
  ....
  </style>
</head>

<body>
  ....
  ....
  <div class="talkBottom">
    <input class="talkInput" type="text"  value="" placeholder="新消息">
    <span class="iconfont icon-xiaoxitianjia" onclick="divClick('加号')"></span>
    <span class="sendBtn" onclick="onSend()">发送</span>
  </div>
  ....
  ....
</body>


<script type="text/javascript">
$('.talkInput').on('input',function(){
    var inputContent = $('.talkInput').val(); 
    console.log("实时获取输入的内容-----" + inputContent);
    if ($.trim(inputContent) == '') {
         // 输入框没有值,隐藏之前显示的联想内容div
          $(".dependentBox").css("display", "none");
    }else{
        // 输入框有值,就发起网络请求获取搜索内容
        xunsearchFunc(inputContent);
    };
});
</script>
</html>

做法二(jQuery):bind()方法里面的input propertychange事件

<html>

<head>
  <style>
  ....
  ....
  </style>
</head>

<body>
  ....
  ....
  <div class="talkBottom">
    <input class="talkInput" type="text"  value="" placeholder="新消息">
    <span class="iconfont icon-xiaoxitianjia" onclick="divClick('加号')"></span>
    <span class="sendBtn" onclick="onSend()">发送</span>
  </div>
  ....
  ....
</body>


<script type="text/javascript">
$(".talkInput").bind("input propertychange",function(event){

       var inputContent = $(".talkInput").val();
       console.log("内容-----" + inputContent);
       if ($.trim(inputContent) == '') {
             $(".dependentBox").css("display", "none");
       }else{
           xunsearchFunc(inputContent);
       };
});
</script>
</html>

做法三(JS):在html的input标签上添加一个oninput.对 谷歌、Safari、IE的部分版本、火狐有效,所以是有局限性的。

<html>

<head>
  <style>
  ....
  ....
  </style>
</head>

<body>
  ....
  ....
  <div class="talkBottom">
    <input class="talkInput" type="text" oninput="onInputFunc(event)"   value="" placeholder="新消息">
    <span class="iconfont icon-xiaoxitianjia" onclick="divClick('加号')"></span>
    <span class="sendBtn" onclick="onSend()">发送</span>
  </div>
  ....
  ....
</body>


<script type="text/javascript">
function onInputFunc(event){
  var inputContent = event.target.value;
  console.log("内容-----" + inputContent);
  if ($.trim(inputContent) == '') {
        $(".dependentBox").css("display", "none");
  }else{
      xunsearchFunc(inputContent);
  };
}
</script>
</html>

动态图

101.175525.gif

静态图

联想搜索input.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,794评论 1 32
  • 万古时期,混沌初开之时,在在宇宙里相隔几万里的地方,几双明如灯火一般的眼睛,同时睁开挣破封印。向着黑喑飞腾而去。 ...
    万古龙血阅读 1,261评论 0 3
  • 在物资匮乏时代,人与人之间的争端较少,因为彼此之间相差不大,没有什么优越感之分;在富裕年代,人们能够安居乐业,...
    摇滚的煤球阅读 1,358评论 0 1