Loading... ## 0x00 问题描述 ### 代码 ``` <script> $('document').ready(function() { $('#button').click(function() { $val = $('#input').val(); window.location.href = 'http://www.baidu.com/s?wd=' + $val; }) $('#input').keydown(function(event) { var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; if (keyCode == '13') { $val = $('#input').val(); window.location.href = 'http://www.baidu.com/s?word=' + $val; } }) }) </script> ``` ### 实现功能 在搜索框中输入问题,通过点击按钮和按下回车都可以跳转到百度搜索相应问题 ### 主要问题 按下回车键,先可以在控制台里看到先跳转到百度搜索界面,但一瞬间又跳回到当前页面 ## 0x02 解决方案 将keydown换成keyup ### 原理剖析 在jquery中按下按键(keypress)分为两部分:keydown和keyup,而在获取input值的时候是在keydown,也就是按键按下之后才开始获取,所以把跳转写在keydown中无法获取到input的值 最后修改:2022 年 01 月 03 日 © 允许规范转载