2014-02-22 3 views
0

jQuery UI과 함께 자동 완성 기능을 사용하여 메시지 수신자의 사용자 이름을 제안합니다. 그러나 메시지를 많은 수신자에게 보낼 수 있기 때문에 요소를 선택한 후에 자동 완성으로 입력 내용을 지우고 싶지는 않습니다. select: 작업을 통해이 작업을 시도했지만 제대로 작동하지 않습니다. 받는 사람 필드에 여러 수신자를 추가 한 후 아래에 언급 된 문자열로 표시되어야합니다jQuery UI - 선택한 항목을 입력에 추가하십시오.

Username1, Username2, Username3 

이 내 코드입니다 :

$("#message_recipient").autocomplete({ 
    source: function(request, response) { 
     if($('#message_recipient').val().indexOf(",") != -1){ 
      var pieces = $.trim($('#message_recipient').val()).split(/[\s,]+/); 
      var last_piece = $.trim(pieces[pieces.length-1]); 
     } else { 
      var last_piece = $.trim($('#message_recipient').val()); 
     } 

     if(last_piece!=""){ 
      $.ajax({ 
       url: baseurl+"users/search_for_user", 
       dataType: "json", 
       type: "POST", 
       data: { 
        user_name: last_piece 
       }, 
       success: function(data) { 
        response($.map(data.result, function(item) { 
         return { 
          label: item.user_name, 
          value: item.user_name 
         } 
        })); 
       } 
      }); 
     } 
    }, 
    minLength: 2, 
    select: function(event, ui) { 
     $('#message_recipient').val($('#message_recipient').val()+ui.item.label+", "); 
    }, 
    open: function() { 

    }, 
    close: function() { 

    } 
}); 

답변

0

당신은 Tag-It! 라이브러리를 사용할 수 있습니다. 여기서 기본 입력 필드에 실제로 필요한 쉼표가 어떻게 들어 있는지 볼 수 있습니다. 이 경우에는 추가 논리가 필요하지 않습니다. 해당 페이지에서 '단일 입력 필드'을 확인하십시오.

라이브러리를 추가하고 사용하기 만하면됩니다.

관련 문제