如果没有结果,jQuery UI自动完成显示

时间:2012-07-19 23:32:18

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete

我正在使用jQuery UI自动完成插件,如果找不到结果,则想要显示一些文本。我已经看到了许多使用远程数据集执行此操作的示例,但我将源设置为本地JSON数组。这是我正在使用的代码,它隐藏了与所选值不匹配的所有行。我想隐藏所有行,并在用户键入与任何可用标记不匹配的文本时在文本框中显示“找不到条目”

$( "#archiveVendor" ).autocomplete({
    source: availableTags,
    select: function(event, ui){
        var emptyRow = '<tr class="emptyArchive"><td class="approved_content">---</td><td>---</td><td>---</td><td class="payment_status">---</td></tr>';
        $('.archive_inner .emptyArchive').remove();
        $('.archive_inner tr').show().filter(function(index){
            var tds = $(this).children('td');
            if($(tds).length == 4){
                if($(tds[1]).text() == '---'){
                    return false;
                }
                var title = $(tds[0]).attr('title');
                return title === ui.item.value ? false : true;
            }
        }).hide();

        if($('.archive_approved tr:visible').length == 1){
            $('.archive_approved tbody').append(emptyRow);
        }
        if($('.archive_denied tr:visible').length == 1){
            $('.archive_denied tbody').append(emptyRow);
        }
    }
});

1 个答案:

答案 0 :(得分:0)

也许你可以将ui.item.value与数组进行比较?

if(jQuery.inArray(ui.item.value, json_array) == -1) { add text to right field and hide() other fields }