2016-09-14 37 views
0

我有這樣的代碼工作正常,但我想清空輸入$項目 用戶選擇後自動完成建議..的JavaScript自動完成排空之後的輸入選擇

$project.autocomplete({ 
     minLength: 1, 
     source: projects, 
     focus: function(event, ui) { 
     $project.val(ui.item.label); 
     return false; 
     }, 
     select: function (e, ui) { 
     createTag(ui.item.label, ui.item.id); 
    } 
    }); 

在何處放置此代碼爲了在自動完成被觸發後執行操作?

//document.getElementById("project").value = ""; 
+0

嗨,在'選擇內的地方:功能(E,UI){ .....}'會訣竅 – Sasikumar

+0

嗨,我試過它沒有工作! – Tony

回答

1

您需要使用close event

var projects = [ 
 
    "ActionScript", 
 
    "AppleScript", 
 
    "Asp", 
 
    "BASIC", 
 
    "C", 
 
    "C++", 
 
    "Clojure", 
 
    "COBOL", 
 
    "ColdFusion", 
 
    "Erlang", 
 
    "Fortran", 
 
    "Groovy", 
 
    "Haskell", 
 
    "Java", 
 
    "JavaScript", 
 
    "Lisp", 
 
    "Perl", 
 
    "PHP", 
 
    "Python", 
 
    "Ruby", 
 
    "Scala", 
 
    "Scheme" 
 
]; 
 

 
var $project = $("#tags"); 
 
$project.autocomplete({ 
 
    minLength: 1, 
 
    source: projects, 
 
    focus: function(event, ui) { 
 
    $project.val(ui.item.label); 
 
    return false; 
 
    }, 
 
    close: function (e, ui) { 
 
    e.target.value = ''; 
 
    //createTag(ui.item.label, ui.item.id); 
 
    } 
 
});
<link href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 
 

 
<div class="ui-widget"> 
 
    <label for="tags">Tags: </label> 
 
    <input id="tags"> 
 
</div>

+0

非常感謝。我花了很多時間在上面! – Tony

+0

@Tony非常感謝你分享你的問題。我使用最新的答案對其進行了測試(即:您的代碼,它可以在我的電腦上運行)。再次感謝 – gaetanoM

0

嘗試這種解決方案

select: function (e, ui) { 
    $project.val(""); 
    createTag(ui.item.label, ui.item.id); 
} 
+0

我也試過這..沒有工作..事實上,我認爲文本填充後,在選擇輸入,所以我想要觸發一個動作,即使在選擇後發生.. – Tony

+0

我會需要有關自動完成插件和createTag函數進一步幫助 – Sasikumar