我有一个工作自动完成功能,但我想保留用户在选择菜单项时在文本框中输入的片段,因为我打开了一个带有超链接的新标签。这是为了方便起见,当用户返回原始页面时,他们可以查看并重用他们已经输入的片段。
所以我在本地存储片段的源事件中添加了代码,然后在抓取该片段的select事件中编码,并在菜单关闭时将其放回文本框中。
工作正常,但如果我在此之后点击文本框,片段就会消失。
下面是一些代码片段。
我无法解决的第二个问题是,如果我通过鼠标单击选择菜单项,则会触发select事件,我会逐步调试调试器,看到片段在文本框中填充,但是当事件结束时,然后我点击带有片段的文本框,文本框清空。
根据我的知识和搜索,我的JS中没有其他部分在点击时触发并将文本框设置为空白。想知道更改事件的默认行为是否将其删除或者其他内容。
var whatstyped;
$("#q").autocomplete({
source: function(request, response) {
whatstyped = request.term;
// getJSON code works fine, I left it out
select: function(event, ui) {
$("#q").val(whatstyped);
$("#q").focus();
// open bookmark in new tab
window.open(ui.item.url,"_blank");
return false;
}
});
});
答案 0 :(得分:0)
尝试event.preventDefault()。这会阻止事件正常操作触发。在下面的代码中,它会停止触发默认点击事件。
$(document).on('click', '#YourElement', function(event){
event.preventDefault();
// Your code below
});