如何使用不同下拉菜单中的选项显示-隐藏下拉元素

克里希纳拉姆

我正在为用户分配角色。

用户类型有:学生、教师、家长和管理员。

因此,当我从下拉列表中选择学生或老师作为用户时。我希望启用类和部分下拉列表。以及选择管理员或家长时。该类和部分应该被禁用。

任何帮助都会很棒。

我已经用单选按钮尝试过这个,但下拉菜单对我不起作用。

<select matInput id="userType" class="fullWidth">
    <option value="" disabled>---Select User---</option>
    <option *ngFor = "let user of users" [ngValue]="user">{{user}</option>
 </select>
  ``` user types are student, teacher, parent and admin```
```below is the drop-down for selecting class if the user type is only student or teacher```
<select matInput id="className" class="fullWidth">
  <option value="" disabled>---Select class---</option> 
  <option *ngFor = "let class of classes"[ngValue]="class">{{class}}</option>
</select>
```class values are 1st, 2nd and 3rd```

“当从用户类型下拉菜单中选择学生或用户时,我希望得到以下结果。我希望启用该课程。否则应该为所有其他用户类型(即:管理员和家长)禁用它”

wentjun

您可以使用双向数据绑定来实现这一点。

在您的 component.ts 上,我们将定义所需的属性:

role: string = undefined;
users : string[] = ['student', 'teacher', 'parent', 'admin'];

在您的 component.html 上,您将<select>元素绑定role,即模型。然后,我们使用*ngIfwhich 将根据所选角色有条件地显示/隐藏后续。在这种情况下,它只会显示用户是否选择了学生或教师。

<select matInput [(ngModel)]="role" id="userType" class="fullWidth">
  <option value="" disabled>---Select User---</option>
  <option *ngFor = "let user of users" [ngValue]="user">{{user}}</option>
</select>

<select *ngIf="role === 'student' || role === 'teacher'" matInput id="className" class="fullWidth">
  <option value="" disabled>---Select class---</option> 
  <option *ngFor = "let class of classes"[ngValue]="class">{{class}}</option>
</select>

编辑 1:来自 OP -

感谢您的回复!!,但以上对我不起作用,或者我做错了什么。不过我找到了答案:

 <select matInput  id="userType" class="fullWidth" (change)="onChange()" [ngModel]="defaultUser">
            <option value="" disabled>---Select User---</option>
            <option value="teacher">Teacher</option>
            <option value="parent">Parent</option>
            <option value="student">Student</option>
            <option value="admin">Admin</option>
 </select> 

在 .ts 文件中,我添加了 onChange() 为:

onChange(){
    const userType = document.getElementById("userType");
    const dvClass = document.getElementById("dvClass");
    const dvTeacher = document.getElementById("dvTeacher");
    dvClass.style.display = userType.value == "student" ? "block":"none";
}

但我只想让学生和老师访问课程下拉菜单。我对如何将两个用户添加到 onChange() 中的上述表达式感到困惑(即:dvClass.style.display = userType.value == "student" ? "block":"none";)


编辑2:

以下是我根据您的更新建议的更改。与我的初始代码类似,我使用了 2 路绑定。但是,我使用titlecase 管道将选项的值转换为首字母大写(而不是手动定义它)。

<select matInput [(ngModel)]="role" id="userType" class="fullWidth">
  <option [ngValue]="null" disabled>---Select User---</option>
  <option *ngFor = "let user of users" [ngValue]="user">{{user | titlecase}}</option>
</select>

<br>

<select *ngIf="role === 'student' || role === 'teacher'" matInput id="className" class="fullWidth">
  <option value="" disabled>---Select class---</option> 
  <option *ngFor = "let class of classes"[ngValue]="class">{{class}}</option>
</select>

更新了演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅在选择不同下拉菜单中的多个选项时,如何触发按钮

来自分类Dev

重新显示原始下拉选项下方的HTML中的相同下拉菜单?

来自分类Dev

使用jQuery从下拉菜单中显示/隐藏选项

来自分类Dev

使用下拉菜单隐藏和显示元素

来自分类Dev

使用 jQuery 显示/隐藏下拉菜单的 <li> 元素

来自分类Dev

如何隐藏下拉菜单选项?

来自分类Dev

在下拉菜单中隐藏选项

来自分类Dev

如果单击主体任何元素,如何隐藏下拉菜单?

来自分类Dev

如果单击主体任何元素,如何隐藏下拉菜单?

来自分类Dev

python硒无法单击下拉菜单中的隐藏元素

来自分类常见问题

JavaScript下拉菜单-根据同一下拉菜单中的所选选项显示不同的选项

来自分类Dev

如何使用其他下拉菜单中未选择的选项填充下拉菜单?

来自分类Dev

隐藏下拉菜单

来自分类Dev

从下拉菜单中显示/隐藏,隐藏 div 中的新下拉菜单消失

来自分类Dev

下拉菜单隐藏在标题元素外部

来自分类Dev

如何在Angular中组合两个下拉菜单时隐藏下拉菜单中的特定选项

来自分类Dev

强制下拉菜单使用不同的值

来自分类Dev

使用不带下拉菜单的选择元素

来自分类Dev

如何使用下拉菜单中的选定选项重新加载jQuery页面,并在地址中显示选项ID?

来自分类Dev

隐藏溢出的导航,但仍显示下拉菜单

来自分类Dev

隐藏和显示下拉菜单

来自分类Dev

使用不带CSS的JS时如何隐藏twitter bootstrap下拉菜单?

来自分类Dev

如何在使用对象的下拉菜单中显示所选元素的名称?

来自分类Dev

如何根据下拉菜单中选择的选项隐藏/显示文本字段?

来自分类Dev

Ionic-单击下拉菜单中的选项时,最初显示隐藏的div

来自分类Dev

根据用户权限在下拉菜单中显示/隐藏选项

来自分类Dev

如何使用不同的下拉菜单更新绘图图破折号

来自分类Dev

下拉选项隐藏/显示

来自分类Dev

从选择下拉菜单中显示/隐藏DIV

Related 相关文章

  1. 1

    仅在选择不同下拉菜单中的多个选项时,如何触发按钮

  2. 2

    重新显示原始下拉选项下方的HTML中的相同下拉菜单?

  3. 3

    使用jQuery从下拉菜单中显示/隐藏选项

  4. 4

    使用下拉菜单隐藏和显示元素

  5. 5

    使用 jQuery 显示/隐藏下拉菜单的 <li> 元素

  6. 6

    如何隐藏下拉菜单选项?

  7. 7

    在下拉菜单中隐藏选项

  8. 8

    如果单击主体任何元素,如何隐藏下拉菜单?

  9. 9

    如果单击主体任何元素,如何隐藏下拉菜单?

  10. 10

    python硒无法单击下拉菜单中的隐藏元素

  11. 11

    JavaScript下拉菜单-根据同一下拉菜单中的所选选项显示不同的选项

  12. 12

    如何使用其他下拉菜单中未选择的选项填充下拉菜单?

  13. 13

    隐藏下拉菜单

  14. 14

    从下拉菜单中显示/隐藏,隐藏 div 中的新下拉菜单消失

  15. 15

    下拉菜单隐藏在标题元素外部

  16. 16

    如何在Angular中组合两个下拉菜单时隐藏下拉菜单中的特定选项

  17. 17

    强制下拉菜单使用不同的值

  18. 18

    使用不带下拉菜单的选择元素

  19. 19

    如何使用下拉菜单中的选定选项重新加载jQuery页面,并在地址中显示选项ID?

  20. 20

    隐藏溢出的导航,但仍显示下拉菜单

  21. 21

    隐藏和显示下拉菜单

  22. 22

    使用不带CSS的JS时如何隐藏twitter bootstrap下拉菜单?

  23. 23

    如何在使用对象的下拉菜单中显示所选元素的名称?

  24. 24

    如何根据下拉菜单中选择的选项隐藏/显示文本字段?

  25. 25

    Ionic-单击下拉菜单中的选项时,最初显示隐藏的div

  26. 26

    根据用户权限在下拉菜单中显示/隐藏选项

  27. 27

    如何使用不同的下拉菜单更新绘图图破折号

  28. 28

    下拉选项隐藏/显示

  29. 29

    从选择下拉菜单中显示/隐藏DIV

热门标签

归档