2012-07-23 3 views
20

일단 사용자가 선택을하면 Jquery 자동 완성 기능이있는 텍스트 상자를 지우고 싶습니다. 선택 후 Jquery Autocomplete의 텍스트 상자 지우기

나는하여 필드를 지우려고 :

select: function(event, ui) { 
    $(this).val(''); 
} 

하지만이 working.I jQuery를-1.6.4와 JQuery와 - UI-1.8.16을 사용하고 있습니다 아니다.

어떤 아이디어?

+0

내가 코드를 발견하는 것은 "선택"말했다. 솔루션을 제공하기 전에 선택 상자가 아니라 텍스트 상자라는 것을 분명히 밝히고 싶습니다. – CoreyRS

+1

@CoreyRS :'select'는 사용자가 자동 ​​완성 옵션 중 하나를 선택할 때 이벤트를 연결하기 위해'autocomplete '에 전달하는 옵션의 이름입니다. –

답변

45

select 이벤트가 발생 해보십시오.

select: function(event, ui) { 
    $(this).val(""); 
    return false; 
} 

업데이트 : T.J.으로 당신이 그것을 삭제 한 후에는 필드가 업데이트되지 않도록하기 위해 이벤트를 취소해야합니다

select: function(event, ui) { 
    this.value = ""; 
    return false; 
} 
+6

+1 [예제] (http://jqueryui.com/demos/autocomplete/#multiple-remote)처럼'this.value = "";',. –

1

필드가 업데이트되기 전에

select: function(event, ui) { 
input.value=''; 
} 
0

당신이 시도 할 수 있습니다 : 그것은 대신 직접 val()를 거치지의 value DOM 속성을 업데이트 할 수 약간 더 빠른 아래 지적 선택에 따라 모든 자동 완성 필터링 된 목록을 숨길

$("#your_autocomplete_sub_listview_id").children().addClass("ui-screen-hidden"); 

그것.

2

내가 jQuery를 UI 버전 1.8.23 및 select 이벤트에 $(this).val("");이 나를 위해 일하지 않은를 사용하고 있지만,이 한 :

$("selector").autocomplete({ 
    // ... 
    close: function(el) { 
     el.target.value = ''; 
    } 
});