我想知道是否有人可以帮助我。我想根据从列表中选择的复选框生成一串用户ID。
我目前的代码是:
<fieldset id="engineers" data-role="controlgroup">
@foreach (var item in Model.Maintenance_Team_List)
{
<label><input type="checkbox" name="Username" />
@item.Username</label>@Html.Hidden("Booked_Engineer_ID",item.UserID)
}
</fieldset>
我尝试使用jquery检查是否选中了每个用户名复选框。从那里我试图找到相应的booked_engineer_id。
var listed = $('#Username input:checked').each(function () {
$("#engineer_div").find('#Booked_Engineer_ID').text();
});
然而,这似乎没有选择任何东西。我正在寻找一个简单的输出,例如23,10,11,1,其中这些值代表所选复选框中的值expected_engineer_id隐藏字段。
感谢您的帮助。
答案 0 :(得分:1)
首先,要获取输入字段的值,您应该使用val()
而不是text()
。
但更重要的是你的算法会做出奇怪的事情。我想你想得到这样的东西:
var listed = [];
$('input[name=Username]:checked').each(function (index, element) {
var id = $(element).parent('label').next('input[name=Booked_Engineer_ID]').val();
listed.push(id);
});
var simpleOutput = listed.join();
<强>更新强>
在像你这样的情况下,我最好建议使用数据属性而不是隐藏字段:
<fieldset id="engineers" data-role="controlgroup">
@foreach (var item in Model.Maintenance_Team_List)
{
<label>
<input type="checkbox" data-userId="@item.UserID" />
@item.Username
</label>
}
</fieldset>
和脚本:
var listed = [];
$('#engineers input:checked').each(function () {
var id = $(this).data("userId");
listed.push(id);
});
var simpleOutput = listed.join();
答案 1 :(得分:0)
我无法让上述代码正常工作,但它促使我朝着正确的方向前进并产生以下内容:
var listed = [];
$('input[name=Username]:checked').each(function () {
var ID = $(this).parent().next().val();
listed.push(ID)
});
var SimpleOutput = listed.join();
爱jquerys chaining。