2013-09-07 3 views
7

jquery 1.8.2 및 jqueryui 1.9.0 라이브러리를 사용하고 있습니다.jquery 자동 완성 텍스트 상자 설정 값

jquery-ui의 자동 완성 텍스트 상자가 들어있는 내 테이블에 "레코드 편집"대화 상자를 추가하려고합니다.

또한 자동 완성의 변경 이벤트를 사용하여 사용자가 주어진 목록에서 항목을 선택하도록 제한합니다.

내 문제는 : 편집 양식을 표시 할 때 기존 데이터를 텍스트 상자로 설정하고 있지만 사용자가 편집 양식의 다른 필드를 클릭하면 변경 컨트롤러가 아무 것도 변경되지 않은 상태로 변경됩니다. 내가 콤보 상자 형식 자동 완성에 대한 값을 설정하는 방법을 보여 많은 샘플을 발견했지만 텍스트 상자 유형에 대한 하나를 찾을 수 없습니다. 이 문제에 대해 도와주세요. 귀하의 답변이 다른 사용자에게 유용 할 것입니다.

$('a.edit_link').live("click", function() { 

     clearEditMaterialForm(); 

     //loading selected value 
     var valMaterialName = $(this).closest('tr').children('td.cl_material_name').text(); 

     $('#EditMaterialName').val(valMaterialName); 

    }); 

귀하의 답변을 주셔서 대단히 감사합니다 : 여기
$("#EditMaterialName").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       url: "someurl", 
       dataType: "json", 
       data: { 
        search_string: request.term 
       }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { 
          label: item.description, 
          value: item.description 
         } 
        })); 
       } 
      }); 
     }, 
     minLength: 2, 
     select: function (event, ui) { 

     }, 
     change: function (event, ui) { 
      if (!ui.item) { 
       $('<div class="error"><b> please select a listed value.</b><div>').insertAfter('#EditMatName'); 
       $('#EditMaterialName').val(''); 
      } 
     }, 
     open: function() { 
      $(this).removeClass('ui-corner-all').addClass('ui-corner-top'); 

     }, 
     close: function() { 
      $(this).removeClass('ui-corner-top').addClass('ui-corner-all'); 

     } 
    }); 

편집 기록 대화 상자를 표시하기위한 코드입니다

여기에 자동 완성 텍스트 상자 내 코드입니다.

답변

9

어쩌면 올바른 아름답 지 않다 있어요하지만 일하고 :

function setAutocompletCurrentValue(id, value) { 
    $(id).val(value); 
    var textToShow = $(id).find(":selected").text(); 
    $(id).parent().find("span").find("input").val(textToShow); 
} 

그것이 도움이되기를 바랍니다.

+0

정말 재미 있고 잘 작동합니다. 정말 고마워요. – Ali

+0

완벽 해요. 훌륭하게 작동합니다. –

+0

큰 감사가 내 머리카락을 꺼내기 시작했으며, 여전히 작동합니다. – jared