前端实现 input 回车搜索(html,vue,react实现)

34 篇文章 7 订阅
28 篇文章 1 订阅

前言:

搜索框是个常见的功能,除了 用ui库,有的时候必须要自己封装(因为改ui库太麻烦了,定制化要求很高),所以 涉及到 点击按钮搜索和回车搜索都要实现。下面就是实现的一些方法。

效果图

实现方法:

html里:

方式一:html里可以用 form 来实现,因为form里回车也能触发提交事件。思路就是 form里 包裹 input,和一个button ,button的type要设置成 submit(必须设置)。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>搜索框</title>
</head>
<body>
    <form action="">
        <input type="text" name="" id="val">
        <button type="submit" id="sub">搜搜</button>
    </form>
</body>
<script>
    let submit=document.getElementById("sub");
    let val=document.getElementById("val");
    submit.addEventListener("click",()=>{
       alert("值是"+val.value)
    });


</script>
</html>

 方式二:

采用原生的方法 利用 keyup判断 键盘码keyCode==13。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>搜索框</title>
</head>

<body>
   
        <input type="text" name="" id="val">
        <button id="sub">搜搜</button>
    
</body>
<script>
    let submit = document.getElementById("sub");
    let val = document.getElementById("val");
    
    val.onkeyup = function (event) {
        var e = event || window.event;
        if (e && e.keyCode == 13) { //回车键的键值为13
            alert("值是" + val.value);
        }
    };

    submit.onclick = function () {
        alert("值是" + val.value);
    }


</script>

</html>

vue里:

vue里其实还是很简单的 因为 他有 按键修饰符 @keyup.enter.native="seachEnter" 所有不做赘述。

当然 html 里的两个方法同样适用。只需要 改变 一点写法 。切记用方式 二时要在组件销毁时移除 监听事件。

react里:

当然 html 里的两个方法同样适用。只需要 改变 一点写法 。切记用方式 二时要在组件销毁时移除 监听事件。

总结:

综上vue里可以直接用按键修饰符,react、html里推荐用 form, 就算用 keycode也要记得 在组件销毁时移除 keyup事件。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

崽崽的谷雨

漫漫前端路,摸爬滚打

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值