是否可以在选择列表中禁用/不可见项目? 我想要完成的是,取决于一些复选框,如果它们被选中,这些字段应该出现在下拉列表中。但是,我确实有永久应该在下拉菜单中的限定字段,它应该都是按顺序排列的。可能禁用/使项目在选择列表中不可见?
复选框:
<table class="Fields"><tr>
<td><%=Html.CheckBox("Field1", Model.DisplayField1, new { value = "Field1" })%> Field 1</td>
<td><%=Html.CheckBox("Field2", Model.DisplayField2, new { value = "Field2" })%> Field 2</td>
<td><%=Html.CheckBox("Field3", Model.DisplayField3, new { value = "Field3" })%> Field 3</td>
</tr><tr>
<td><%=Html.CheckBox("Field4", Model.DisplayField4, new { value = "Field4" })%> Field 4</td>
<td><%=Html.CheckBox("Field5", Model.DisplayField5, new { value = "Field5" })%> Field 5</td>
<td><%=Html.CheckBox("Field6", Model.DisplayField6, new { value = "Field6" })%> Field 6</td>
</tr></table>
下拉:
<table cellpadding="0" cellspacing="0">
<tr>
<td>Sort 1</td>
<td><%= Html.DropDownList("drpSortColumn1", (SelectList)ViewData["SortColumns"])%></td>
</tr>
</table>
下拉包含了所有的checkboxfields +一些额外的字段,总是应该在那里。因此,我可以动态删除所有并添加取决于如果它被检查或不。 我需要在UI中执行此操作。莫名其妙地理想jquery。 那么对此有什么好处呢?有禁用选项吗?否则会是一种选择?
谢谢!
// MRW
编辑: 我试着这样做:
$('#drpSortColumn1 option[value=' + val + ']').hide();
,但似乎并没有工作了。我不知道是不是可以隐藏一个选项,或者如果我做错了。
不是真的,因为该示例似乎与预定义的列表一起使用,应该启用和禁用。我可以有多达20个可选字段,并且都可以打开或关闭(+我的manditory字段)。那意味着我需要用每一个可能的解决方案来创建词典?! – MrW 2010-06-28 08:58:20
这就是我正在考虑的,因为无论如何,如果你想保持正确的顺序,你必须做这样的事情。隐藏()确实不适用于选项。我不确定是否有“轻量级”解决方案。但是如果有人有一个更好的主意,(禁用属性不是完全跨浏览器,但如果你不需要IE6的支持,它可以做到这一点,因为该选项将不可选)。 – 2010-06-28 09:06:18
那么,目前在总共25个领域中进行了简要介绍,而且很可能在未来更多,这将会或多或少地不可能保持这种方式。恐怕这不是一个选择。也听起来像这样会很慢,检查我现在有什么组合,然后加载正确的值。 – MrW 2010-06-28 10:19:32