我做了一个糟糕的尝试,它一直工作到超过 10 个项目为止。我只是取关联文本框的名称并尝试将其与复选框匹配,但它很丑。这个 ?
$('.naCheckbox').click(function () {
var $this = $(this);
var checkboxId = $this.attr("id");
var textboxId = checkboxId.slice(0, 16) + "ProfileAnswerText";
if ($this.is(':checked')) {
$('#' + textboxId).attr("disabled", "disabled")
} else {
$('#' + textboxId).removeAttr("disabled");
}
});
<div id="tabs-1" class="tabTwo">
@for (var i = 0; i < Model.ProfileItems.Count(); i++)
{
<div class="question-block">
<p> @Html.HiddenFor(m => m.ProfileItems[i].ProfileFieldId)</p>
<p class="questions"> @Model.ProfileItems[i].ProfileQuestionText </p>
@if (Model.ProfileItems[i].NotApp == true)
{
@Html.TextAreaFor(m => m.ProfileItems[i].ProfileAnswerText, new { disabled = "disabled", @class = "autofit" })
}
else
{
@Html.TextAreaFor(m => m.ProfileItems[i].ProfileAnswerText, new { @class = "autofit" })
}
<label style="float: right; text-align:unset; width:220px;">
N/A
@Html.CheckBoxFor(m => m.ProfileItems[i].NotApp, new { @class = "naCheckbox" })
</label>
</div>
}
</div>