自动完成jQueryUI双调用功能,然后选择并按回车键
Autocomplete jQueryUI double call function on select and press enter
我想要一些小帮助。这是我的JsFiddle:https://jsfiddle.net/Mirawen/q59nqh2z/
function keyPress(keyEvent)
{
if (keyEvent.which == 13)
MainFunction();
}
function MainFunction()
{
alert("Hello World");
}
var arrSource = ["foo", "foooo", "foooooo", "bar", "barr", "barr"];
$(document).ready(function() {
$("#txtSearch").autocomplete({
source: arrSource,
minLength: 1,
select: function (event, ui)
{
MainFunction();
}
});
});
当我按 Enter 时,我想调用 MainFunction()
,并在从自动完成中选择项目时调用此函数关键是,当我选择一个项目并按回车键时,MainFunction()
被调用两次。
我不知道如何解决这个问题。
感谢您的回答!
我认为您在同一个事件上调用了两次相同的函数,因此它调用了两次主函数。即使您按回车键,它也是一个按键/键/键下事件。因此,当文档准备就绪时,它已经被调用一次,并在您的 Enter 按键事件中调用。
function addEnterKeyHandler()
{
$( "#txtSearch" ).keypress(function( event ) {
if ( event.which == 13 ) {
MainFunction();
}
});
}
function removeEnterKeyHandler(){
$('#txtSearch').unbind("keypress");
}
function MainFunction()
{
alert("Hello World");
}
var arrSource = ["foo", "foooo", "foooooo", "bar", "barr", "barr"];
$(document).ready(function() {
addEnterKeyHandler();
$("#txtSearch").autocomplete(
{
source: arrSource,
minLength: 1,
selecting: function(event, ui){
canPressEnter = false;
},
select: function (event, ui)
{
removeEnterKeyHandler();
MainFunction();
addEnterKeyHandler();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js" integrity="sha256-xNjb53/rY+WmG+4L6tTl9m6PpqknWZvRt0rO1SRnJzw=" crossorigin="anonymous"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css">
<div>
<input type="text" id="txtSearch" onkeypress="keyPress(event);" />
<button type="button" title="Search" onclick="MainFunction();">Search
</button>
</div>
所以看起来我解决了我的问题!
在我的 MainFunction() 中,我有一个带有异步 false 的 AJAX 调用 (ASP.NET)。我试图将此调用异步更改为 true。现在,仅触发事件autocompleteselect
!
但是,我不知道为什么不再触发keypress
。我会继续寻找,如果我发现为什么异步 false 也会在 autocompleteselect
后触发keypress
,我会编辑这个答案,以防其他人有同样的问题。
相关文章:
- 什么是“;选择“;然后触发事件
- 如何利用多链接延迟检查并显示ping结果,然后使用JavaScript选择最快的URL
- 选择值,然后只调用函数
- onchange选择get value并执行查询,然后在同一页面上显示结果
- 椭圆字幕选择,然后在Photoshop中使用Javascript填充颜色
- 选择具有ID的父级的第一个子级以外的所有子级,然后应用操作
- 通过属性名称选择每个td,然后给出'未定义'用于属性值
- 在输入字段中选择一个值,然后用相应的数据填充另一个字段
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载
- 单击“选择标签”中的“选项”时创建,然后选中“值”创建输入
- 创建唯一选项,然后使用 JavaScript 填充多个选择
- 选择其中一个单选按钮,然后单击“提交”,重定向其他页面
- 从select中选择一个选项,然后使用Codeigniter在另一个选择框上显示数据
- Jquery页面重新加载,然后选择分区
- 如果选择'其他'然后填充输入字段
- 下拉菜单,用于选择国家/地区,然后选择州
- 我不知道如何做出两个选择,然后展示你的选择
- 文本框和选择框组合单个文本中的值(第一个tb值,然后是sb值)
- Jquery按类选择然后匹配值
- 选择x + y然后返回文本字符串