2017-05-13 3 views
1

jquery UI 자동 완성을 사용하고 값이 표시되고 있지만 목록에서 값을 선택하면 입력 상자 안에 표시되지 않습니다. select : function에 console.log를 사용했습니다. 선택된 값 i가 24를 선택입력 상자에 선택된 자동 완성 값이 표시되지 않습니다.

여기

enter image description here

,

나는 문제의 스크린을 장착 한 콘솔 아니라 입력 박스 안에 표시이며 콘솔에 표시되지 않지만, 입력 상자 (즉, 롯트 번호 라벨이 부착 된 상자) 내부로 들어갑니다.

스크립트이었다

,

<script> 
    $(function() { 
     var lot_selection = {!! $lot_selection !!}; 
     $("#lot_number").autocomplete({ 
      autoFocus: true, 
      source: lot_selection, 
      minLength: 0, 
      select: function (event, ui) { 

       $('#lot_number').val(ui.item.lot_number); 
       console.log($('#lot_number'), ui.item.lot_number); 
      } 
     }) 
     .focus(function() { 
      $(this).autocomplete("search", ""); 
     }) 
     .data("uiAutocomplete")._renderItem = function (ul, item) { 
      return $("<li>") 
        .append("<a>" + item.lot_number + "</a>") 
        .appendTo(ul); 
     }; 
    }); 

</script> 

그리고 laravel의 lot_number 입력 양식의 코드가 있었다

<div class="col-md-2 hidden-print"> 
    <div class="input-group"> 
     {!! Form::input('text', 'lot_number', null, array('id' => 'lot_number', 'class' => 'input-lg form-control TabOnEnter', 'placeholder' => 'lot_number','autofocus', 'tabindex' => 1)) !!} 
     <span class="input-group-addon">Lot Number</span> 
    </div> 
</div> 

답변

1
select: function (event, ui) { 
       event.preventDefault(); 
      $('#lot_number').val(ui.item.lot_number); 
      console.log($('#lot_number'), ui.item.lot_number); 
     } 

변경 당신의 선택 기능으로

1
<script> 
    $(function() { 
     var lot_selection = {!! $lot_selection !!}; 
     $("#lot_number").autocomplete({ 
      autoFocus: true, 
      source: lot_selection, 
      minLength: 0, 
      select: function (event, ui) { 

       $('#lot_number').val(ui.item.lot_number); 
       console.log($('#lot_number'), ui.item.lot_number); 
      } 
      focus: function(event, ui) { 
       event.preventDefault(); 
       $("#lot_number").val(ui.item.lot_number); 
      } 
     }) 
     .focus(function() { 
      $(this).autocomplete("search", ""); 
     }) 
     .data("uiAutocomplete")._renderItem = function (ul, item) { 
      return $("<li>") 
        .append("<a>" + item.lot_number + "</a>") 
        .appendTo(ul); 
     }; 
    }); 

</script> 

이 시도 위와 같이 코드가 도움이 될 것입니다 ...

+0

이 코드 단편은 질문을 해결할 수 있지만 [설명 포함] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)은 게시물의 품질을 향상시키는 데 정말로 도움이됩니다. . 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. 또한 주석을 설명하기 위해 코드를 군중시키지 마십시오. 그러면 코드와 설명 모두 가독성이 떨어집니다! – Rizier123

+0

확실한 @ Rizier123 이후에 나는 내 대답을 설명 할 것이다 ... 감사합니다 ... – Nawin