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>
答案 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'}
];
});