簡體   English   中英

提前輸入Angular UI-Bootstrap:接受在ENTER上選擇的頂層

[英]Angular UI-Bootstrap Typeahead: Accept top item as selected on ENTER

這是一個簡單的問題,但是當按ENTER鍵時,是否有辦法使下拉結果中的第一項成為所選項?

例如,用戶在“ PC0”中鍵入,並看到“ PC001”列為第一個選項,當按ENTER鍵時,我們可以讓它在“預選類型”選項上使用“ PC001”嗎?

我目前正在使用typeahead-on-select來運行一個函數,該函數通過id調用輸入並獲取要在函數中使用的Value。 似乎使用輸入到文本框中的內容而不是在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">

用於 getApplicationValue() JS 看起來像這樣:

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

問題是applicationComboBox.value是用戶在單擊/輸入時分別鍵入的文本而不是單擊/突出顯示的值。 因此,在前面的示例中,“ PC0”將是值,而不是“ PC001”。

當用戶選擇/按下輸入時,ng-model applicationCombox會自動更新。 如果要在選擇后更新另一個值$scope.ApplicationValue ,請執行以下操作

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

讓我們知道

我能夠找到對我有用的解決方案。

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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM