如何从下拉列表中重新启用选项

Posted

技术标签:

【中文标题】如何从下拉列表中重新启用选项【英文标题】:How to re-enable option from drop down 【发布时间】:2014-02-07 09:39:26 【问题描述】:

我无法从下拉菜单中重新启用选项。由于一些奇怪的原因,我可以禁用但无法恢复。有什么解决办法吗?我正在使用 SharePoint 2007

$(document).ready(function()
if($("#ctl00_m_g_98b27f90_2d47_4399_9f55_39944c5c3d72_ctl00_ctl04_ctl23_ctl00_ctl00_ctl04_ctl00_DropDownChoice option[value='Validating']"))
$("#ctl00_m_g_98b27f90_2d47_4399_9f55_39944c5c3d72_ctl00_ctl04_ctl23_ctl00_ctl00_ctl04_ctl00_DropDownChoice option[value='Analysis']").attr("disabled", "disabled");

else     
if($("#ctl00_m_g_98b27f90_2d47_4399_9f55_39944c5c3d72_ctl00_ctl04_ctl23_ctl00_ctl00_ctl04_ctl00_DropDownChoice option[value='Resolving']"))

$("#ctl00_m_g_98b27f90_2d47_4399_9f55_39944c5c3d72_ctl00_ctl04_ctl23_ctl00_ctl00_ctl04_ctl00_DropDownChoice option[value='Analysis']").removeAttr("disabled");

);

【问题讨论】:

你到底为什么有这样的身份证? 【参考方案1】:
$("#ctl00_m_g_98b27f90_2d47_4399_9f55_39944c5c3d72_ctl00_ctl04_ctl23_ctl00_ctl00_ctl04_ctl00_DropDownChoice option[value='Validating']") 

是一个 jQuery 对象,它始终是一个真实值(即使没有选择任何内容)。因此,总是执行第一个if 语句。

改为使用$('blah').length 来确定是否选择了任何内容。

虽然很牛,但还是找到一种更好的方法来识别你的 DOM。

【讨论】:

似乎这些 ID 是由 Microsoft 的名为 SharePoint 的软件动态生成的 :) @BlackSheep 我注意到标签,“更好的方式”表示从轨道上攻击 SharePoint。 这真的很有帮助。我的 if 语句总是执行第一个。谢谢!【参考方案2】:

ready 回调中缺少左括号。

$(document).ready(function()  <--- here
    if($("#ctl00_m_g_98b27f90_2d47_4399_9f55_39944c5c3d72_ctl00_ctl04_ctl23_ctl00_ctl00_ctl04_ctl00_DropDownChoice option[value='Validating']"))
        $("#ctl00_m_g_98b27f90_2d47_4399_9f55_39944c5c3d72_ctl00_ctl04_ctl23_ctl00_ctl00_ctl04_ctl00_DropDownChoice option[value='Analysis']").attr("disabled", "disabled");
    
    else if($("#ctl00_m_g_98b27f90_2d47_4399_9f55_39944c5c3d72_ctl00_ctl04_ctl23_ctl00_ctl00_ctl04_ctl00_DropDownChoice option[value='Resolving']"))
        $("#ctl00_m_g_98b27f90_2d47_4399_9f55_39944c5c3d72_ctl00_ctl04_ctl23_ctl00_ctl00_ctl04_ctl00_DropDownChoice option[value='Analysis']").removeAttr("disabled");
    
);

【讨论】:

else 声明是 else if 声明哈哈。他没有遗漏任何东西。 哦,那个换行符很误导人 一开始我也很困惑

以上是关于如何从下拉列表中重新启用选项的主要内容,如果未能解决你的问题,请参考以下文章

在下拉列表中选择特定值时如何在联系表单 7 中启用字段

更改时重新生成下拉选项

在“选择”/下拉 HTML 列表中手动输入值?

如何强制用户从下拉列表和按钮中选择一个值以启用保存按钮?

将值从第一个下拉列表提交到第二个下拉列表而不重新加载页面

想从下拉列表中选择选项并根据所选选项更改按钮的标题...如何?