【问题标题】:Create Checkbox (or checkboxlist) from a list using foreach使用 foreach 从列表中创建复选框(或复选框列表)
【发布时间】:2016-02-29 05:29:34
【问题描述】:

我正在尝试从列表中创建一个复选框或复选框列表。我试过了:

@foreach (var bundle in Model.BundleList)
{

    <div>
        <input type="checkbox" name="labels" value="@bundle.BundleType" id="@bundle.BundleType" />
        <label for="@bundle.BundleType">@bundle.BundleType</label>
    </div>
} 

但是我怎么知道选中了哪个复选框?我也想要单选按钮行为,这意味着只能选择一个复选框。

【问题讨论】:

  • 如果要像单选按钮一样使用复选框,为什么还需要复选框?
  • 如果你想要单选按钮的行为,那么使用单选按钮(不是复选框)
  • @Kimos,为所有复选框添加一个类并找到$('.class_name:checked')选中的复选框
  • 嗨,我做了一些更改,并添加了一个 jquery 脚本来制作单选按钮的行为

标签: jquery .net asp.net-mvc checkbox checkboxlist


【解决方案1】:

使用 JQuery,您可以通过 $('input:checkbox:checked') 选择器获得选中的复选框。

你可以有如下复选框的单选按钮行为。

$("input:checkbox").click(function () {
    if (!$(this).is(':checked')) {
        $(this).prop('checked', true);
        return;
    }
    $("input:checkbox").not(this).removeAttr("checked");
});

更新:在隐藏字段中设置选中的复选框值。

HTML

&lt;input id="SelectedProducts" name="SelectedProducts" type="hidden" /&gt;

jQuery

$("input:checkbox").click(function () {
    if (!$(this).is(':checked')) {
        $(this).prop('checked', true);
        return;
    }

    var checkvalue = $(this).val();
    $('#SelectedProducts').val(checkvalue);

    $("input:checkbox").not(this).removeAttr("checked");
});

【讨论】:

  • 我无法获取选中的复选框值并将其放入我尝试过的隐藏属性中: var checkvalue = $('input[name=labels]:checked').map(function () { return this .value; }).get();我不知道校验值是否正确。如何将校验值分配给模型中的属性?
  • 隐藏属性是什么意思?你是说隐藏输入吗?
  • 是隐藏输入 @this.Hidden(m => m.SelectedProducts)
  • 选中其中一个复选框并在 F12 (developertool) 中查看后 SelectedProducts 值为空
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-02
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 2014-06-12
相关资源
最近更新 更多