2011-04-12 2 views
0

약간의 자동 완성 동작을 변경하려고합니다. 나는 아래 그림 (현재 대소 문자 구별)과 같이 희망 결과 (la 크롬 주소 표시 줄)를 생성하는 여기 http://jsfiddle.net/ekzMN/6/을 모의했다. 자동 완성 목록이 표시 될 때자동 완성을 제거하는 자동 완성 호버

enter image description here

제가하는 데 문제는 내가 목록의 항목 위에 마우스를 올려 아니라 자동 완성과 조정 기간에 머물고보다는 다시 입력 기간에 입력 값 변경 . 즉 위의 이미지에서 Hackn [ey, Eastern Cape, 남아프리카 공화국]에서 Hackn으로 바뀝니다.

필자는 기본 자동 완성 동작을 약간 무시한다고 생각합니다.하지만이를 해결할 수는 없습니다. 나는 focus: falseblur: false을 시도했지만 아무 소용이 없습니다.

감사합니다.

+1

막대기가 잘못 붙어 있는지 잘 모르겠지만 피들에서이 동작이 보이지 않습니까? 텍스트 상자에 용어를 입력하고 목록 위로 마우스를 가져 가면 아무 것도 바뀌지 않습니다. 텍스트 상자는 목록 항목의 onclick 만 업데이트합니다. –

+0

예. 죄송합니다. 감각적 인 사례를 시도해보십시오. 'Hackn'(대문자 H를 사용)을 입력하고 잠시 기다리면 입력 결과가 자동 완성됩니다. 이제 목록 위로 마우스를 가져 가면 입력 된 단어 만 반환됩니다. 브라우저 불일치가 없다면 그렇지 않습니다. 현재 Chrome을 사용하고 있습니다. –

답변

1

달성하려는 목표는 입력 된 텍스트가 마우스 오버 한 항목에 따라 변경된다는 것입니까?

focus: function(event, ui){ 
     $("#location").val(ui.item.label); 
     return false; 
    }, 

당신이 당신은 결과 목록의 첫 번째 인덱스로 설정할 수 있습니다, 텍스트가 항상 첫 번째 인덱스로 설정해야하고 목록에 마우스를 가져 때마다 변경되지 않습니다하려면 다음 http://jsfiddle.net/ekzMN/8/ 그냥 포커스 이벤트를 오버라이드 (override) .

+0

이 제안이 나를 '포커스 : function (event, ui) { var i = $ ("# location"). val(). length; $ ("# location") .val (suggestion); // 입력되지 않은 나머지 값을 선택하십시오. $ ('# location'). selectRange (i, suggestion.length); false를 반환합니다. }'- 여전히 조금 더러운 느낌이 들지만. 호버가 처음 발생했을 때 선택된 입력 섹션의 깜박임이 이상적이지 않습니다. 사용해보기 http://jsfiddle.net/ekzMN/11/ –

+0

필자는 포커스 상태를 완전히 제거하고 자동 완성이 실행될 때 검색 조건을 다시 리디렉션하여 결과를 얻었습니다. 'result.term = suggestion;'http://jsfiddle.net/ekzMN/89 / –