【发布时间】:2015-06-26 23:21:49
【问题描述】:
我有一个带有多个是/否单选按钮和文本区域的表单,我想在选择是时禁用(“灰色”)并在选择否时启用。
我目前仅适用于第一个文本区域,所有其他单选按钮仅影响第一个文本区域,因为它们具有匹配的 id。
这是我正在使用的视图。
@for (int i = 0; i < Model.Questions.Count; i++)
{
<tr>
<td>
<div>
@Html.RadioButtonFor(p => Model.Questions[i].AnswerSelected, true, new { id = "radio" + i, @class = "class" + i, value = "yes", }) Yes
@Html.RadioButtonFor(p => Model.Questions[i].AnswerSelected, false, new { id = "radio" + i, @class = "class" + i, value = "no" }) No
</div>
</td>
<td>
@Html.TextAreaFor(p => Model.Questions[i].ActionToTake, new { id = "text" + i })
</td>
</tr>
}
我知道我需要以某种方式为每对单选按钮生成唯一的 ID,并以某种方式将它们绑定到文本区域。这是我目前正在使用的脚本。
$(document).ready(function() {
$(".class1").change(function (e) {
if ($(this).val() === 'True') {
$("#text1").prop('readonly', true);
$("#text1").css('background-color', '#EBEBE4');
} else if ($(this).val() === 'False') {
$("#text1").prop('readonly', false);
$("#text1").css('background-color', '#FFFFFF');
}
});
})
有什么好的方法来解决这个问题?我还是 javascript 的新手,所以对你所做的任何其他解释都会有所帮助。
【问题讨论】:
-
使用id中的i计数器
id='"radio"'.i.'"' -
使用类而不是 ID 并对每个集合进行分组,例如
<div class="group">radio, radio, text area</div>
标签: javascript jquery radio-button