我正在一个asp.net mvc 3应用程序.我使用数据库中的数据动态构建表.当某行的第三列/单元格是下拉列表时,我有一定的情况:
<select name="YesNoNotApplicable" class="YesNoNotApplicable"> <option value="1">Yes</option> <option value="2">No</option> <option value="3">Not Applicable</option> </select>
在这种情况下,第四列/单元格保持为空,如果第四个单元格中的用户选择3(不适用)应显示为用户可以写入附加信息的文本框.我在JS和jQuery中的知识差,但是我了解如何从下拉列表中获取所选值:
$(document).ready(function () { $('.YesNoNotApplicable').change(function () { alert($('.YesNoNotApplicable').val()); }); });
但是现在,我需要检查该值是否为3(这是我能远离的地方),并且显示/隐藏或附加/删除下一个单元格中的文本框,或者我们在DOM预览中进行说明.
那么我怎么可以导航到class = YesNoNotApplicable的下一个,什么是处理这个文本框的最好的方法 – 把它放在我创建表,然后显示/隐藏或处理在运行时,它附加/删除它,我该怎么办?
解决方法
如果您使用强类型模型和html帮助器来查看,那么在创建表时可能会更好地创建输入元素.原因是您将通过jQuery创建的元素不会与您的模型绑定.
$(document).ready(function () { $('.YesNoNotApplicable').change(function () { if($(this).val() === "3") $(this).closest('td').next('td').find('input').show(); }); });