【问题标题】:selected="selected" not populate inside drop down in <option> tagselected="selected" 未填充在 <option> 标记的下拉列表中
【发布时间】:2016-07-23 11:13:40
【问题描述】:

我有一个下拉菜单,我会将下拉菜单显示为两种类别 AdminUser

我需要填充如果下拉菜单包含屏幕中自动填充的空值。我的问题是它在 One (Admin)category 中工作正常,(User) 类别它不工作。下面我粘贴了我在我的 chrome 控制台 ELEMENTS 标签中得到的代码。

工作

<select ng-model="dept" ng-change="deptCh(dept,buildNameng)" ng-options="option.floor as option.floor for option in dptData 
| unique:'floor'" style="width: 12%;" ng-if="floorNotNull" class="ng-pristine ng-untouched ng-valid ng-scope">

<option value="" class="" selected="selected">---Floor---</option><option value="string:" selected="selected"></option></select>

不工作

<select ng-model="dept" ng-change="deptCh(dept,buildNameng)" ng-options="option.floor as option.floor for option in dptData 
| unique:'floor'" style="width: 12%;" ng-if="floorNotNull" class="ng-pristine ng-valid ng-scope ng-touched">
<option value="" class="" selected="selected">---Floor---</option><option value="string:"></option></select>

我在 chrome 控制台中得到了上面的代码。当我以 ADMIN 身份登录时,工作代码已在选项标记的 END 内选择了="selected"。

<option value="" class="" selected="selected">---Floor---</option><option value="string:" selected="selected"></option></select>

当我以 USER 身份登录时,不工作的代码在 END 选项标签内没有这个 selected="selected"。

<option value="" class="" selected="selected">---Floor---</option><option value="string:"></option></select>

如果我在 chrome edit as html 中手动添加了 selected="selected" 这个 edit as html 内不工作的 option 标记它工作正常。

我不知道为什么此代码在一种类型中工作但在另一种类型中不工作,如果我以“USER”类型登录,selected="selected" 也不会出现。我将在下面发布我的整个下拉代码

<div ng-show="(staticData == 2) ? trueVar : (firstTimeSubject == 9) ? trueVar : falseVar">
          <label ng-if="floorNull" for="singleSelect">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp  Floor: </label>
          <select ng-if="floorNull" ng-model="dept" ng-options="option.id as option.floor for option in dptData | unique:'floor'" style="width:12%" ng-change="deptCh(dept,buildNameng)">
            <!-- You can have ONE default, null selection option.-->
            <option value="">---Floor---</option>
          </select>
          <label ng-if="floorNotNull" for="singleSelect">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp  Floor: </label>
          <select ng-if="floorNotNull" ng-model="dept" ng-options="option.floor as option.floor for option in dptData | unique:'floor'" style="width:12%" ng-change="deptCh(dept,buildNameng)">
            <!-- You can have ONE default, null selection option.-->
            <option value="">---Floor---</option>
</div>

镀铬快照

在 chrome 控制台中工作 Snap

在 Chrome 控制台中无法正常工作

上面我标记为 RED CIRCLE 代码的无效快照不会自动填充到 USER 类别登录中的 option 标记 selected="selected" 内。 selected="selected" 是自动添加的 chrome 我没有在我的代码中添加任何东西。

请指导我我没有收到任何错误我测试这是在谷歌浏览器中。

【问题讨论】:

  • 我们需要更多信息来回答这个问题。你在使用 AngularJs 1,你能显示 deptCh 函数和(相关部分或整个)角度模块吗?
  • 是的,我正在使用 angular 1
  • 我在该方法中做了很多条件,这就是为什么我不会发布该方法@twicejr
  • 请在您的问题中添加“angularjs”标签,这样更有可能得到好的答案
  • @rafaelcastrocouto 好的,我会添加兄弟

标签: html angularjs google-chrome html-select options


【解决方案1】:

使用ng-selected 指令指定何时应选择您的项目。

您还可以分配给返回布尔值的控制器函数以允许您执行更多操作。

【讨论】:

  • 请看我的快照,我没有在我的代码中添加任何selected。铬自动添加。不工作的快照看到它没有添加我不知道为什么如果我手动添加它的工作。
  • 是的,实际上浏览器会自动将一个 selected 属性添加到您的 select 标签的默认选项中。它通常是第一个选项标签。就像你有角度一样,你不应该使用 selected 属性。掌握此属性的正确方法是使用 ng-selected 指令。这样你就可以选择你想要选择的元素并掌握浏览器的行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-19
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
相关资源
最近更新 更多