当前位置: 首页 > 面试题库 >

角度2:获取多个已选中复选框的值

伊俊能
2023-03-14
问题内容

我的问题真的很简单:我有一个复选框列表,如下所示:

<div class="form-group">
    <label for="options">Options :</label>
    <label *ngFor="#option of options" class="form-control">
        <input type="checkbox" name="options" value="option" /> {{option}}
    </label>
</div>

我想发送一组选定的选项,例如: [option1, option5, option8]如果选择了选项1、5和8。该数组是我想通过HTTP
PUT请求发送的JSON的一部分。

谢谢你的帮助!


问题答案:

感谢Gunter,我找到了解决方案!这是我的完整代码,如果它可以帮助任何人:

<div class="form-group">
            <label for="options">Options :</label>
            <div *ngFor="#option of options; #i = index">
                <label>
                    <input type="checkbox"
                           name="options"
                           value="{{option}}"
                           [checked]="options.indexOf(option) >= 0"
                           (change)="updateCheckedOptions(option, $event)"/>
                    {{option}}
                </label>
            </div>
        </div>

这是我正在使用的3个对象:

options = ['OptionA', 'OptionB', 'OptionC'];
optionsMap = {
        OptionA: false,
        OptionB: false,
        OptionC: false,
};
optionsChecked = [];

共有3种有用的方法:

1 。启动optionsMap

initOptionsMap() {
    for (var x = 0; x<this.order.options.length; x++) {
        this.optionsMap[this.options[x]] = true;
    }
}

2. 更新optionsMap

updateCheckedOptions(option, event) {
   this.optionsMap[option] = event.target.checked;
}

3. 转换optionsMapoptionsChecked并将其存储在options发送POST请求之前:

updateOptions() {
    for(var x in this.optionsMap) {
        if(this.optionsMap[x]) {
            this.optionsChecked.push(x);
        }
    }
    this.options = this.optionsChecked;
    this.optionsChecked = [];
}


 类似资料:
  • 首先,ngfor中的标签没有要关联的标识,也没有要查找的任何其他标识。然而,我没有发现任何需要id的东西,在剑道页面上有许多例子显示了没有id的复选框的例子,所以我不认为这是问题(但肯定可能是错误的)。 其次,它们在ngFor循环中。我不知道为什么这会把它搞砸,但这是我能想到的一切。我搜索了一下,但找不到任何关于这里的问题或如何解决它的东西。 你知道我哪里出了问题或者我没有看到什么吗?我确实记录了

  • 如何使用fluid获取前端模板中选中的多个复选框的值,并在action extbase中使用这些值?

  • 所以我有这样的代码: 我只需要Javascript来获取当前选中的任何复选框的值。 编辑:要添加,只有一个复选框。

  • 问题内容: 我有1个表单,里面有多个复选框(每个都有代码): 数据库中的主键在哪里- 因此每个值都不同。 我如何知道已经选中了哪些复选框?(也许多个) 这是针对收件箱系统的,我下面有一个按钮,我希望(单击时)删除选中了复选框的所有消息(标识:)。 问题答案: 在表单中将名称设置为,您将能够以array()的形式访问所有复选框。 以下是根据要求提供的一些示例:

  • 选中“第一键”复选框时,我想选中并禁用“第二键”复选框 html代码 为复选框键入脚本代码 } 通过使用此代码,key 2复选框被选中并禁用。但是key 2复选框的布尔值仍然是假的。当我单击key 1复选框时,关于如何将key 2复选框的布尔值更改为true的任何建议我正在使用Angular 8及其反应式形式模块。我是角度新手。

  • 问题内容: 我有一个包含3个复选框的表单:“ 全 选 ”,“ 选项1 ”和“ 选项2 ”。 在初始页面加载中,我 只 希望检查 选项1 。然后,如果 选中了“全选” 复选框,则它应自动选中 选项1 和 选项2, 以便全部选中。 问题是在初始页面加载时对ng-checked =“ selectAll”进行评估,这将覆盖我最初仅检查选项1的尝试(最初selectAll = false),因此未选择任何