jQuery自动完成更改xor close

时间:2012-08-03 19:34:20

标签: jquery autocomplete jquery-autocomplete

我正在使用jQuery的自动完成功能,我按照以下方式进行设置

$('#id').autocomplete({
        source: function (request, response) {
            $.ajax({
                url: 'myurl'
            , type: 'POST'
            , dataType: 'json'
            , data: { 'query': request.term }
            , success: function (data) {
                response($.map(data, function (item) {
                    return { label: item, value: item };
                }));
            }
            });
        },
        delay: 300,
        minLength: 2,
        close: function (event, ui) { doAjaxStuffNow() },
        change: function (event, ui) { doAjaxStuffNow() }
    });

我正在使用close和change函数,因为我想通过ajax调用实现的时间。我希望它在菜单关闭时执行,或者在菜单永远不会打开的情况下,当字段模糊时执行。问题是,如果菜单关闭然后字段模糊,它会触发两次,所以我想知道是否有人知道如何实现近距离x变化的效果。

谢谢, 汤姆

1 个答案:

答案 0 :(得分:1)

您可以使用焦点和模糊方法来确定值是否已更改。

$("#combo_input_id").focus(function() {
    oldval = $(this).val();
    }).blur(function(){
        if(oldval != $(this).val()){
            doAjaxStuffNow();
        };
        return false;
    });

它不是很漂亮,但它完成了工作。我希望未来版本的jqueryui会触发更改方法,即使用户从不输入输入。