0

簡單的問題,但有沒有辦法讓下拉結果中的第一項成爲按下ENTER時所選項目?Angular UI-Bootstrap Typeahead:接受在ENTER上選擇的頂部項目

例如,用戶鍵入「PC0」並將「PC001」列爲第一個選項,當ENTER命中時,我們可以在typeahead-on-select選項上使用「PC001」嗎?

我目前使用typeahead-on-select來運行一個函數,該函數通過id調用輸入並獲取函數中使用的值。它似乎使用在文本框中輸入的內容,而不是在ENTER或Click上選擇的值。

HTML:

<input id="applicationComboBox" 
     type="text" 
     ng-model="applicationComboBox" 
     uib-typeahead="a as a.Value for a in applicationList | filter:$viewValue" 
     typeahead-on-select="getApplication()" 
     class="form-control"> 

JS爲getApplicationValue()看起來像這樣:

$scope.getApplication = function() { 
    $scope.ApplicationValue = applicationComboBox.value; 
} 

問題是applicationComboBox.value是什麼文本用戶鍵入到點擊/輸入時的輸入而不是分別點擊/突出顯示的值。所以在前面的例子中,「PC0」將是數值而不是「PC001」。

+0

請告訴我們您正在使用此代碼。 – jusopi

+0

我編輯了我的問題,以顯示模仿我正在使用的代碼的簡單示例。 – Austin

回答

0

當用戶選擇/按輸入ng型號applicationCombox是自動更新。如果想要另一個值$scope.ApplicationValue的選擇後進行更新,請執行下列操作

$scope.applicationCombox = ""; //your existing model. 
$scope.getApplication = function() { 
$scope.ApplicationValue = $scope.applicationCombox; 
} 

讓我們知道。

+0

我不認爲這正是我正在尋找的。我正在尋找一種方法來獲取選定的值,而不是在typeahead-on-select或類似的調用中鍵入到選擇框中的內容。 我已經嘗試了applicationComboBox調用和document.getElementById('applicationComboBox')來嘗試獲取更新的值,它們都返回預選值。 – Austin

+0

你可以檢查這個撬棍並告訴我它是否接近你的問題? https://plnkr.co/edit/TlTmRNSlzMz1hWNuPXV5?p=preview。您似乎擁有正確的設置,除了使用情況。 @奧斯汀 – Searching

+0

抱歉沒有更新,但我找到了適合我的解決方案。我會將其作爲對此問題的迴應發佈 – Austin

0

我能夠得到一個適合我的解決方案。

HTML:

<input id="applicationComboBox" 
    type="text" 
    ng-model="applicationComboBox" 
    uib-typeahead="a as a.Value for a in applicationList | filter:$viewValue" 
    typeahead-on-select="onApplicationSelect($item, $model, $label, a)" 
    class="form-control"> 

JS:

$scope.onApplicationSelect = function (item, model, label, application) { 
     applicationComboBox.value= item.Value; 
    } 
相關問題