>

선택 필드 (여러 개)가 있고 사용자 정의 태그도 추가해야합니다. 그러나 사용자 정의 데이터를 입력하고 Enter를 클릭하면 작동하지 않습니다. ajax 요청이 완료되면 내 사용자 정의 데이터가 드롭 다운에 표시되고 그 후에야 드롭 다운에서 선택할 수 있습니다. Enter 버튼을 클릭 한 후 태그를 추가 할 수 있습니까?

<select id="autocomplete" multiple="multiple" name="to[]"></select>
$("#autocomplete").select2({
        ajax: {
          url: url,
          dataType: 'json', 
          cache: false
        },  
        tags: true,           
        minimumInputLength: 1 
    });

  • 답변 # 1

    selectOnClose를 true로 설정하려고 했습니까 (기본값은 false)?

    와이즈 비즈

    자세한 내용은 https://select2.org/configuration/options-api를 참조하십시오. 마지막으로, jsfiddle은 다른 사람들이 문제를 해결하는 데 매우 도움이 될 것입니다.

    업데이트: 제 경우에는 Results.highlightFirstItem 함수를 우연히 발견했기 때문에

    selectOnCloseboolean false Implements automatic selection when the dropdown is closed.

    를 설정했습니다  사실이 아니었다 :

    selectOnClose
    
    

    다음으로 변경 :

    Results.prototype.highlightFirstItem = function () {
        var $options = this.$results
          .find('.select2-results__option[aria-selected]');
        var $selected = $options.filter('[aria-selected=true]');
        // Check if there are any selected options
        if ($selected.length > 0) {
          // If there are selected options, highlight the first
          $selected.first().trigger('mouseenter');
        } else {
          // If there are no selected options, highlight the first option
          // in the dropdown
          $options.first().trigger('mouseenter');
        }
        this.ensureHighlightVisible();
    };
    
    

    이것은 빠르지 않은 해결책이므로 적절한 요청 (github의 새로운 문제)을 만들어야합니다 (이것이 전혀 문제가 아닌 경우).

    Results.prototype.highlightFirstItem = function () { var $options = this.$results .find('.select2-results__option[aria-selected]'); // Highlight the first option $options.first().trigger('mouseenter'); this.ensureHighlightVisible(); };

  • 이전 android - 442에서 클래스 TextView 팽창 중 오류
  • 다음 php - 워드 프레스 드롭 다운 목록