【发布时间】:2014-03-10 15:33:38
【问题描述】:
我有一个 .net 控件。我正在使用属性属性禁用控件的列表项。 在客户端进行验证,我正在检查控件是启用还是禁用。 编写的 j 查询仍然表示控件已启用,即使它已禁用并触发警报。 我有点挣扎任何人都可以帮助我..
这是我的代码
private void EnableDisableControl(ListControl control, Boolean value)
{
if (value == true)
{
foreach (ListItem item in control.Items) {
item.Attributes.Remove("checked");
item.Attributes.Add("disabled", "disabled");
}
}
else
{
foreach (ListItem item in control.Items)
{
item.Attributes.Remove("disabled");
}
}
}
我使用此功能禁用了我的一个控件
EnableDisableControl(rdb_control, true);
这里是 jquery
if ($("#<%=rdb_control.ClientID%> input[type='radio']").is(':enabled')) {
if ($("#<%=rdb_control.ClientID%> input[type='radio']:checked").length == 0) {
alert("Required");
}
}
即使控件被禁用,我仍然会收到警报。而它甚至不应该检查控件是否被禁用。
这是它看起来禁用跨度的 HTML
<table id="ctl00_m_g_c09fd465_0ae4_479b_8fc6_21a7de645003_ctl00_rdb_control" class="chklistUnknown" border="0">
<tr>
<td><span disabled="disabled"><input id="ctl00_m_g_c09fd465_0ae4_479b_8fc6_21a7de645003_ctl00_rdb_control_0" type="radio" name="ctl00$m$g_c09fd465_0ae4_479b_8fc6_21a7de645003$ctl00$rdb_control" value="Yes" /><label for="ctl00_m_g_c09fd465_0ae4_479b_8fc6_21a7de645003_ctl00_rdb_control_0">is</label></span></td>
</tr><tr>
<td><span disabled="disabled"><input id="ctl00_m_g_c09fd465_0ae4_479b_8fc6_21a7de645003_ctl00_rdb_control_1" type="radio" name="ctl00$m$g_c09fd465_0ae4_479b_8fc6_21a7de645003$ctl00$rdb_control" value="No" /><label for="ctl00_m_g_c09fd465_0ae4_479b_8fc6_21a7de645003_ctl00_rdb_control_1">not</label></span></td>
</tr><tr>
<td><span disabled="disabled"><input id="ctl00_m_g_c09fd465_0ae4_479b_8fc6_21a7de645003_ctl00_rdb_control_2" type="radio" name="ctl00$m$g_c09fd465_0ae4_479b_8fc6_21a7de645003$ctl00$rdb_control" value="Unknown,Yes" /><label for="ctl00_m_g_c09fd465_0ae4_479b_8fc6_21a7de645003_ctl00_rdb_control_2">Unknown</label></span></td>
</tr>
</table>
【问题讨论】:
-
你能发布来自服务器的 HTML 吗?在那里您可以查看您的服务器端方法是否有效。我们需要这些信息来确定问题出在 .NET 代码还是 javascript 代码中。
-
我的服务器端方法正在运行,我看到带有禁用选项的控件。但是当我单击提交按钮时,它仍然会查找已启用的控件并触发警报,因为它不会检查任何内容。
-
不过,看到那个 HTML 对我们来说还是非常有用的。否则我们无法知道出了什么问题(或者至少我不知道)。
-
在它自己的问题中添加了 HTML
-
@user,不能禁用任意元素。只有表单控件可以。
标签: c# javascript jquery asp.net .net