2012-07-23 106 views
20

我想清除Jquery自動完成的文本框,一旦用戶做出選擇。選擇後的Jquery自動完成中的清除文本框

我試圖清理現場:

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

但這不是working.I我使用jQuery的1.6.4和jQuery-UI-16年8月1日。

任何想法?

+0

我注意到你的代碼說「選擇」。只是想澄清,這是一個文本框,而不是我提供解決方案之前的選擇框。 – CoreyRS 2012-07-23 07:22:17

+1

@CoreyRS:'select'是您傳遞給'autocomplete'的選項的名稱,當用戶選擇其中一個自動完成選項時掛鉤該事件。 – 2012-07-23 07:23:17

回答

45

select事件的字段更新之前發生。你將不得不取消該事件,以避免現場更新已清除後:

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

更新:作爲T.J.指出下面,它的速度稍快,直接,而不是去通過val()更新value DOM屬性:

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

+1或者只是'this.value =「」;',如[其範例](http://jqueryui.com/demos/autocomplete/#multiple-remote)。 – 2012-07-23 07:20:16

1

嘗試

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

你也可以試試這個:

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

這將在選擇隱藏所有自動完成過濾列表它。

2

我使用jQuery UI的版本23年1月8日和$(this).val("");select事件還沒有爲我工作,但這並:

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