单击时jQuery自动完成清除文本框

时间:2015-05-01 18:21:11

标签: jquery

我有一个工作自动完成功能,但我想保留用户在选择菜单项时在文本框中输入的片段,因为我打开了一个带有超链接的新标签。这是为了方便起见,当用户返回原始页面时,他们可以查看并重用他们已经输入的片段。

所以我在本地存储片段的源事件中添加了代码,然后在抓取该片段的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;
        }
   });
});

1 个答案:

答案 0 :(得分:0)

尝试event.preventDefault()。这会阻止事件正常操作触发。在下面的代码中,它会停止触发默认点击事件。

$(document).on('click', '#YourElement', function(event){
      event.preventDefault(); 
      // Your code below 
});