可能禁用/使项目在选择列表中不可见?

weixin_38073436 2019-09-12 02:19:01

是否可以在选择列表中禁用/不可见项目? 我想要完成的是,取决于一些复选框,如果它们被选中,这些字段应该出现在下拉列表中。但是,我确实有永久应该在下拉菜单中的限定字段,它应该都是按顺序排列的。 复选框: <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 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38115949 2019-09-12
  • 打赏
  • 举报
回复

看看这里,我想这就是你要找的内容:jQuery disable SELECT options based on Radio selected (Need support for all browsers) 你可以有你自己的订单,只要在合适的条件,我认为它应该统治;) 干杯^^ 编辑:好吧,这不是你的情况非常方便所以这里有一些线索: 尝试使用尽可能d禁用属性由CuSS规定,这将是最低成本和难以设置。但它有一个主要的缺点,即该选项不能被隐藏,即使它不再可选。显示:没有选项只适用于我记得的FF。 如果你准备编写大量的代码,你可以删除并通过影响他们的ID来记住他们为了他们像 ... ... 等字段添加.. 你必须有两次相同的选择,一个在显示:none div,“默认”选择包含所有选项,我们不会操纵。 然后如果你想隐藏一个选项,你可以在第一个选择中删除它。当你想把它放回去,并创建一个带两个参数的函数插入选项:一个用于标识select(select1,select2,select3 ....不知道你是怎么得到的),另一个用于行)你想插入(数组似乎是最好的)。 然后你在正确的选择中正确的位置克隆选择的,它应该做的伎俩,至少这是我看到的唯一的解决方案,如果你不想一直重新创建它,并保持正确订购。告诉我,如果这还不清楚,但我希望这有助于;)
weixin_38116481 2019-09-12
  • 打赏
  • 举报
回复

变化: $('#drpSortColumn1 option[value=' + val + ']').hide(); $('#drpSortColumn1 option[value=' + val + ']').show(); 到: $('#drpSortColumn1 option[value=' + val + ']').attr('disabled','disabled'); $('#drpSortColumn1 option[value=' + val + ']').attr('disabled',''); 或: $('#drpSortColumn1 option[value=' + val + ']').attr('disabled',true); $('#drpSortColumn1 option[value=' + val + ']').attr('disabled',false);
weixin_38104149 2019-09-12
  • 打赏
  • 举报
回复

最后我做这个: $(document).ready(function() { $('.Fields input[type=checkbox]:checked').click(function() { $('#drpSortColumn1').children().remove(); jQuery.each(fields, function(val, name) { $('#drpSortColumn1').append('<option value="' + val + '">' + name + '</option>') }); $('.Fields input:checkbox:not(:checked)').each(function() { $('#drpSortColumn1 option[value=' + $(this).val() + ']').remove(); }); }) }); 因此,我存储一个Json对象,其中包含所有原始字段,并在每个复选框单击时,从下拉列表中删除所有项目,并重新生成所有项目。然后根据未选中的复选框删除下拉列表中的值。

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧