2015-01-12 5 views
2

내 프로젝트에서 selectize.js를 사용하고 있습니다. 내가해야 할 일은 폼의 일부 (선택된 엘리먼트 포함)를 복제하여 폼의 끝에 추가하는 것입니다.Selectize.js destroy() 메소드가 선택 값을 변경합니다.

복제하기 전에 선택 요소를 파괴하기로 결정하고 새 하위 형식을 추가 한 다음 다시 초기화하십시오. 요소 정규 변환을 선택하지만, 선택 요소의 값이 변화 - 그것은 작동

var selectElements = $(plusButtonElement).parents(".subform_wrapper").first().find("> .subform_fields_wrapper").find("select"); 
$.each(selectElements, function(index, element){ 
    console.log(element); 
    console.log($(element).val()); //Here we got value "10" 
    $(element)[0].selectize.destroy(); 
    console.log($(element).val()); //Here we got value "A6" 
}); 

: 여기

는 selectized 소자를 파괴하기위한 코드이다. 누구든지이 문제에 직면 했습니까?

나는 selectize.js 소스를 확인하고 내가 말할 수있는 유일한 것은 그 값이 코드에서 변경됩니다 :

self.$input 
      .html('') 
      .append(revertSettings.$children) 
      .removeAttr('tabindex') 
      .removeClass('selectized') 
      .attr({tabindex: revertSettings.tabindex}) 
      .show(); 

답변

0

안녕 타마라는 그래 난이이 Selectize.js의 버그라고 생각합니다.

나는 당신이 내 selectize.js 파일을 다운로드 할 수 있습니다 selectize.js

다음
destroy: function() { 
     var self = this; 
     var selectedValue = self.$input.val(); 
     var eventNS = self.eventNS; 
     var revertSettings = self.revertSettings; 

     self.trigger('destroy'); 
     self.off(); 
     self.$wrapper.remove(); 
     self.$dropdown.remove(); 

     self.$input 
      .html('') 
      .append(revertSettings.$children) 
      .removeAttr('tabindex') 
      .removeClass('selectized') 
      .attr({tabindex: revertSettings.tabindex}) 
      .show(); 

     self.$control_input.removeData('grow'); 
     self.$input.removeData('selectize'); 

     $(window).off(eventNS); 
     $(document).off(eventNS); 
     $(document.body).off(eventNS); 

     delete self.$input[0].selectize; 

     self.$input.val(selectedValue); 
    }, 

의 파괴 다음 방법을 변경합니다.