Как не дать IE «выбрать» первую обязательную опцию - PullRequest
0 голосов
/ 18 марта 2019

Internet Explorer решает использовать первую доступную опцию в качестве «заполнителя», а не оставлять поле выбора пустым, как, например, в Chrome.

Без моей скрытой вручную опции <option value="" ng-if="false">Don't display a blank option</option>, будет пустая опция Iне хочу видеть в обязательном поле выбора.Я хочу дать пользователю 2 варианта и не дать им увидеть пустой параметр.

Как я могу заставить IE не выбирать первый обязательный параметр.Я не хочу включать javascript для selectIndex -1 везде, потому что у меня есть много этих полей выбора вокруг.

var app = angular.module('myApp', []);

app.controller("myCtrl",function($scope){

  $scope.options = [
    {id:1, label: 'Option1'},
    {id:2, label: 'Option2'}
  ];

});
<html>
<head>
</head>
<body>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
  
  <div ng-app="myApp" ng-controller="myCtrl">
    <select ng-model="option" required id="opt" name="opt" ng-options="option as option.label for option in options track by option.id">
      <option value="" ng-if="false">Don't display a blank option</option>
    </select>
  </div>
</body>
</html>

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Действительно простой способ - инициализировать вашу модель option в вашем контроллере. Должно работать что-то вроде следующего:

var app = angular.module('myApp', []);

app.controller("myCtrl",function($scope){

  $scope.option = '';
  $scope.options = [
    {id:1, label: 'Option1'},
    {id:2, label: 'Option2'}
  ];

});
0 голосов
/ 18 марта 2019

Отключить первый вариант выбора:

<option value="" selected disabled>(placeholder text, if you want)</option>

Технически это даст пользователю три варианта вместо двух, хотя они не смогут выбрать отключенный вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...