如何阻止IE“选择”第一个必需选项

时间:2019-03-18 10:28:47

标签: javascript html angularjs internet-explorer

Internet Explorer决定使用第一个可用选项作为“占位符”,而不是像Chrome一样保留选择空白。

没有我的手动隐藏选项 <option value="" ng-if="false">Don't display a blank option</option>,我不想在必填的选择字段中看到一个空白选项。我想给用户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 :(得分:0)

禁用第一个选择选项:

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

从技术上讲,这将为用户提供三个而不是两个选项,尽管他们将无法选择禁用的选项。

答案 1 :(得分:0)

一种真正干净的方法是在您的Controller中初始化您的option模型。 像下面这样的东西应该起作用:

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

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

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

});