首页 > 解决方案 > jQuery自动完成 - 修改所选选项的值

问题描述

我有以下在一定程度上可以按预期工作。它可以很好地恢复数据。

如果我从 line_manager 字段中搜索,项圈会更新得很好。但是,如果我从衣领字段中搜索,衣领字段会显示 line_manager 数据。

我的问题是当我选择一个选项时,不是显示 JSON 中带回的值,而是如何显示ui.item.some_other_field

function autoComp(type) {
    $( "."+type ).autocomplete({
          source: function( request, response ) {
            $.ajax( {
              url: "/searchContacts/json",
              type: 'POST',
              dataType: "json",
              data: {
                term: request.term
              },
              success: function( data ) {
                response( data );
              }
            } );
          },
          minLength: 3,
          select: function( event, ui ) {
            var id = $(this).data("id")
            $('input.collar[data-id="'+id+'"]').val(ui.item.collar);
            $('input.line_manager[data-id="'+id+'"]').val(ui.item.forename + ' '  + ui.item.surname);
          }
        } ).autocomplete( "instance" )._renderItem = function( ul, item ) {
          return $( "<li>" )
            .append( "<div>" + item.label + "<br><small>" + item.department + " / "+item.team+"</small></div>" )
            .appendTo( ul );
        };  
}

标签: jqueryjquery-ui-autocomplete

解决方案


似乎可以解决问题

              select: function( event, ui ) {
                var id = $(this).data("id")
                $('input.collar[data-id="'+id+'"]').val(ui.item.collar);
                $('input.line_manager[data-id="'+id+'"]').val(ui.item.forename + ' '  + ui.item.surname);
                return false;
              }

推荐阅读