Joa*_*ind 2 javascript jquery onkeyup
这是我的代码:
$('#MyInput').on('keyup', function (e) {
if ($(this).val().length == 1) {
ajaxSearch($(this).val());
}
});
Run Code Online (Sandbox Code Playgroud)
我想在input只有一个字符的情况下运行一个函数.
问题是如果用户真的很快输入一个单词,那么'keyup'似乎从第二个字符开始调用该事件,这意味着它不会调用ajaxSearch()方法.
'keyup'当它只有1个字符时,有没有办法提高事件的速度来调用它?
当用户键入太快时,他/她可能还没有释放以前的键,所以从keyup技术上来说还没有发生.
尝试keypress而不是keyup
$('#MyInput').on('keypress', function (e) {
if ($(this).val().length == 1) {
ajaxSearch($(this).val());
}
});
Run Code Online (Sandbox Code Playgroud)
编辑
上keypress input的value财产已不尚未更新,所以赶上keyup以及万一用户只输入一个字符.
$('#MyInput').on('keypress', function (e) {
if ($(this).val().length == 1) {
ajaxSearch($(this).val());
}
});
Run Code Online (Sandbox Code Playgroud)
$('#MyInput').on('keyup keypress', function(e) {
if ($(this).val().length == 1) {
ajaxSearch($(this).val(),e);
}
});
function ajaxSearch(value,e) {
console.log(value, e.type)
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="MyInput">Run Code Online (Sandbox Code Playgroud)
尝试按键而不是键盘
$('#MyInput').on('keypress', function (e) {
if ($(this).val().length == 1) {
ajaxSearch($(this).val());
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
735 次 |
| 最近记录: |