繁体   English   中英

如何从复选框输入中检索真/假?

[英]How to retrieve true/false from a checkbox input?

我有一个表格,表格的每一行都有两个复选框。 我正在遍历表格的每一行并尝试将 boolean 发送回 controller(如果选中则为 true,如果不选中则为 false),但传回的值始终为 false。 作为参考,这是我设置表格的方式:

@foreach (var item in Model.lockers)
{
    <tr>
        <td>
            @Html.CheckBoxFor(modelItem => item.IsActive, new { htmlAttributes = new { @class = "form-control IsEnabled" } })
        </td>
        <td>
            @Html.CheckBoxFor(modelItem => item.IsADA, new { htmlAttributes = new { @class = "form-control IsADA" } })
        </td>
    </tr>
}

这是我从该复选框中检索信息的代码:

var list = [];
$('#tblMaster tbody tr').each(function (index, ele) {
    var LockerDoorMaster = {
        IsActive: $('.IsEnabled', this).is(":checked"),
        IsADA: $('.IsADA', this).is(":checked")  
    }
    list.push(LockerDoorMaster);
});

如何修改我的代码,以便在选中复选框时将值“true”传回? 谢谢!

<html>
<body>
<form name="y">
<input type="checkbox" name="inputOne">
<input type="checkbox" name="inputTwo">
</form>
<p id="demo"></p>
<script>
if(document.forms["form"]["inputOne"].selected ==   "true"){   document.getElementById("demo").innerHTML = "You Selected The First Button";}
if(document.forms["form"]["inputTwo"].selected ==   "true"){ document.getElementById("demo").innerHTML = "You Selected The Second Button";}
</script>
</body>
</html>

有时普通的香草js是go的最佳方式。

 var cb = document.getElementById('cb').checked; console.log(cb); var cb2 = document.getElementById('cb2').checked; console.log(cb2);
 <input id='cb' type='checkbox'> <input id='cb2' type='checkbox' checked>

如果我理解正确,您需要添加一个将在复选框更改时触发的事件,否则当您在列表中提交数据时,您将始终拥有复选框初始值。

var list = [];

function setList() {
    list = [];
    $('#tblMaster tbody tr').each(function (index, ele) {
        var LockerDoorMaster = {
            IsActive: $('.IsEnabled', this).prop('checked'),
            IsADA: $('.IsADA', this).prop('checked')
        };
        list.push(LockerDoorMaster);
    });
}

setList();

$('.IsEnabled').on('change', function () {
    setList();
});

$('.IsADA').on('change', function () {
    setList();
});

基本上,每次复选框值更改时,此代码都会更新您的列表。 虽然这不是最好的方法,但它回答了你的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM