我有一张桌子 在表格中,第一列显示一个复选框,第二列显示一个文本框 现在我想点击一个复选框,应该在该特定行的文本框中启用datepicker。这应该发生在每行的每个复选框上。
这是我试过的照片:
//内部视图:
@foreach (var item in Model.Select((x, i) => new { Data = x, Index = i + 1 }))
{
<div class="cell"> <input type="checkbox" name="chkbox" class="a" onclick="checkbox1()" data-id="@item.ID" />
</div>
<div class="cell" id="edit2">@Html.DisplayFor(modelItem => item.ExhibEndDate)</div>
<div class="cell" id="edit1">@Html.TextBox("Enddate", item.ExhibEndDate) </div>
// Javascript代码:
function checkbox1() {
if ($('.a').is(':checked')) {
$(this).document.getElementById('edit1').style.display = 'block';
$(this).document.getElementById('edit2').style.display = 'none';
}
}
在这里,我尝试隐藏和显示标签,但是只需在第一行的文本框中启用任何行中的复选框,就可以启用此选项。
请帮助我,我真的无法解决这个问题。
答案 0 :(得分:1)
@foreach (var item in Model.Select((x, i) => new { Data = x, Index = i + 1 }))
{
<div class="cell"> <input type="checkbox" onclick="checkbox(@item.Index)" />
</div>
<div class="cell" id="edit-@item.Index">@Html.TextBox("Enddate", item.ExhibEndDate) </div>
JS:
function checkbox(index){
$(this).document.getElementById('edit-' + index).style.display = 'none';
}
像这样的东西。我希望你明白这一点
答案 1 :(得分:1)
如果你可以为
这样的行添加容器div<div class="row">
<div class="cell"> <input type="checkbox" name="chkbox" class="a" onclick="checkbox1(this)" data-id="@item.ID" />
</div>
<div class="cell datePicker" id="edit2">@Html.DisplayFor(modelItem => item.ExhibEndDate)</div>
<div class="cell dateTxt" id="edit1">@Html.TextBox("Enddate", item.ExhibEndDate) </div>
</div>
然后在jquery中你可以写
function checkbox1(chkBox)
{
$('.datePicker').hide();
$('.dateTxt').show();
if ($(chkBox).is(':checked')) {
$(chkBox).parents('.row').children('.datePicker').show();
$(chkBox).parents('.row').children('.dateTxt').hide();
}
}
这应该像魅力一样。如果您具有相同的ID,则无法选择元素。因此,添加可用于查询的类名。