JQuery Autoselect:我想总是在select事件上运行一个函数,但是只在没有选择value时才在change事件上运行

时间:2015-06-12 23:37:41

标签: javascript jquery javascript-events autocomplete jquery-autocomplete

我在文本输入上使用jQuery自动完成功能,如果用户单击其中一个自动完成选项,则需要立即响应。如果用户手动输入内容或修改了他们从自动填充中选择的内容,我还想响应更改事件。

简而言之,如果select和change事件之间的输入文本相同,我不想冗余地运行该函数。

  function attachPartAutocomplete(id, changeFunc) {
    $("#" + id).autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "AJAXHandlerInLogisitcs",
                dataType: "json",
                data: {
                    method_name: "searchPart",
                    rows: 20,
                    part: request.term,
                    task: "com.acme.logistics.ReqAjax"
                },
                success: function(data) {
                    response(data);
                }
            });
        },
        select: function(event, ui) {
            if (typeof changeFunc == 'function') {
                changeFunc(ui.item.value);
            }
        },
        change: function(event, ui) {
            if (typeof changeFunc == 'function') {
                changeFunc(this.value);
            }
        },
        delay: 0,
        minLength: 2,
        open: function() {
            $(".ui-autocomplete").css({
                fontSize: "75%",
                overflowY: "auto"
            });
        }
    });
}

选择之后是否有事件我可以设置标志,如果发生了什么? 有没有办法摆脱选择事件的待定更改事件?这样我只会在选择之后发生更改事件。 处理这个问题的优雅方法是什么?

0 个答案:

没有答案