[英]jquery autocomplete .When you have the autocomplete and press 'enter',i do not want to search ,actually it will do search
输入自动完成功能,您按“ enter”键,我会搜索内容。但是当您具有自动完成功能并按“ enter”时,我不想搜索,实际上,当您按“ enter”时,它将进行搜索,因为它将捕获enter事件并执行搜索功能。
这是第一个功能:自动完成代码:
$('input[name=fieldInputName]').autocomplete(names, {
max: max,
minChars: minChars ,
width: 149,
scrollHeight: 500,
matchContains: true,
autoFill: false,
sortable: true,
matchSubset :false,
formatItem: function(row, i, max) {
return row[returnSearchkey];
},
formatMatch: function(row, i, max) {
return row[returnSearchkey] ;
},
formatResult: function(row) {
return row[returnSearchkey];
}
}).result(function(event, row, formatted) {
});
这是第二个功能:将搜索的pressenter代码:
function pressEnter(e){
e = e || event;
if (e.keyCode == 13) {
submitSearch()();
}
}
输入的HTML:
<input onkeyup="pressEnter(event);"type='text' name='createdBy' />
当您触发自动完成并通过按“ enter”键选择一个项目时,它将执行自动完成并回填所选的值,但是它还会调用第二个函数“ pressEnter(e)”。实际上,我想在您触发了自动完成功能,但不执行第二个功能(按Enter)。
DOM中的事件从树中的某个位置开始,一直到元素(捕获阶段),然后它们冒泡到DOM(冒泡阶段)。
您可以捕获该事件并阻止其传播。 然后将不再进行扩展,也不会调用附加到例如包装元素的其他事件处理程序(如您的第二个函数)。
在自动完成的事件处理程序中,应在事件上调用stopPropagation()
。 但这在所有浏览器中均不起作用。 在IE9之前的IE中,该方法称为cancelBubble(true)
。
为了防止浏览器出现默认行为,您可以执行event.preventDefault()
您可以通过搜索“事件取消”或“事件传播”来了解更多信息,因为这是JavaScript中的棘手主题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.