2011-03-07 4 views
1

jquery 자동 완성을 사용하여 스택 오버플로 스타일 태그 입력을 작성하는 데 관심이 있습니다.jquery UI 자동 완성 스택 오버플로 스타일

그래서 주요 작업은 다음과 같습니다

  1. 당신이 'A'를 입력하면 'A는 표시되지 않습니다와 쿼리 (아무 문제, 그건 어떻게 JQuery와 자동 완성 작품)
  2. 줄이거 나 최대 누르면 추천을 선택하려면 입력 상자가 변경됩니다.

입력이 변경 될 때마다 마지막 항목 만 변경됩니다.

이 쿼리를 입력의 값을, 선택하는 경우에만

var l = $input.val().split(' '); 
l[l.length-1] will be changed 

나는 JQuery와 자동 완성의 _value 기능을 monkeypatching,하지만 성공에 노력을 의미한다. 나는 여러분이 위 또는 아래로 움직이거나 esc 할 때조차 입력이 엉망이된다는 것을 깨달았다. 나는이 자동 완성에서 경험이 많은 사람에게이 점을 밝혀달라고 간청했다.

답변

1

어쨌든 소스 코드를 이해하고 문제를 해결했다.

기본적으로 jquery.autocomplete의 _value 함수를 사용하여 monkeypatching을 수행합니다.

(function($, undefined) { 

    /* This is the getter and setter of the value 
    * When getting, parse and return the last part 
    * When setting, just set the last part 
    */ 
    jQuery.ui.autocomplete.prototype._value = function(value) { 
    var originalstr = this.valueMethod.apply(this.element); 

    if (arguments.length) { 
     var l = originalstr.split(' '); 
     l[l.length -1] = arguments[0]; 
     this.valueMethod.apply(this.element, [l.join(' ')]); 
    } 
    else { 
     var l = originalstr.split(' '); 
     return l[l.length -1]; 
    } 
    }; 

} (jQuery)); 

이 코드는 방법 자동 완성 얻을 수정하고 입력 상자 안에 값을 설정