Как избежать отображения выбранной опции в следующем поле ввода?

0

У меня есть два поля ввода (поле ввода 1 и поле ввода 2), которые имеют параметры автозаполнения. Если я выбираю одну из опций в поле ввода 1, тогда выбранная опция не должна отображаться в параметрах поля ввода 2. как я могу это сделать?

input field 1
<input type="text" ng-model="type1"  uib-typeahead="value for value in gettype($viewValue)" >

 input field 2
 <input type="text" ng-model="type2"  uib-typeahead="value for value in gettype($viewValue)">

$scope.gettype = function(val) {
return $http.get('api', {
  params: {
    type: val,
    sensor: false
  }
}).then(function(response){
  return response.data.type;
});
};

это всего лишь пример кода, который я планирую сделать, - создать ng-repeat, который повторяет поле ввода столько, сколько я хотел

  • 0
    Вы можете попробовать использовать атрибут autocomplete в ваших 2 полях.
  • 0
    @MarioAlexandroSantini спасибо за быстрый ответ. я использую ui.bootstrap.typeahead
Показать ещё 3 комментария
Теги:

2 ответа

1

вы можете использовать опцию ng-blur

учитывая autofille_data как ваши данные

мы можем вызвать функцию на ng-blur

$scope.remode(autofill_data){
var index=autofill_data.indexOf($scope.input_val1);
 autofill_data.splice(index, 1);
}

где $ scope.input_val1 - значение в поле ввода 1

0

repeat для создания текстового поля. после этого из массива вам нужно удалить те значения, которые были выбраны. например:

html code

<span"><input type="text" ng-model="x.name1"</span>
<span"><input type="text" ng-model="x.name2"</span>
<span"><input type="text" ng-model="x.name3"</span>

js code:
Suppose your suggestion values are coming from array named $scope.usStates.
now you have to remove compare both value inside x an $scope.usStates and remove the matching element from $scope.usStates. you can use index of particullar element and splice method for removing an element.
example:
$scope.usStates.splice(index, 1);

$scope.usStates = [
    { name: 'ALABAMA', abbreviation: 'AL'},
    { name: 'ALASKA', abbreviation: 'AK'},
    { name: 'AMERICAN SAMOA', abbreviation: 'AS'},
    { name: 'ARIZONA', abbreviation: 'AZ'},
    { name: 'ARKANSAS', abbreviation: 'AR'},
    { name: 'CALIFORNIA', abbreviation: 'CA'},
    { name: 'COLORADO', abbreviation: 'CO'},
    { name: 'CONNECTICUT', abbreviation: 'CT'},
    { name: 'DELAWARE', abbreviation: 'DE'},
    { name: 'DISTRICT OF COLUMBIA', abbreviation: 'DC'},
    { name: 'FEDERATED STATES OF MICRONESIA', abbreviation: 'FM'},
    { name: 'FLORIDA', abbreviation: 'FL'},
    { name: 'GEORGIA', abbreviation: 'GA'}]

Thanks.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню