Raddatepicker textarea 在设置 enabled = true 后保持只读
Posted
技术标签:
【中文标题】Raddatepicker textarea 在设置 enabled = true 后保持只读【英文标题】:Raddatepicker textarea remains readonly after setting enabled = true 【发布时间】:2015-01-27 12:28:07 【问题描述】:我有几个 raddatepicker 控件在我设置 date1.enabled = true
后未正确启用。
母版页包含一个将禁用控件设置为只读的客户端函数:
function ParseDocumentForDisabled()
//Transform the disabled controls that are not inside a DIV
$("input[type=text][disabled]").each(function (i, v)
if ($(v).attr('OnClientLoad') != '' && $(v).attr('OnClientLoad') != undefined)
return;
$(v).removeAttr("disabled");
$(v).attr("readonly", "");
);
//Transform the disabled DIVs
$("div[disabled]").each(function (i, v)
$(v).removeAttr("disabled");
//Take each control type and parse it
$(v).find("input[type=text]").attr("readonly", "");
$(v).find("textarea").attr("readonly", "");
$(v).find("checkbox").attr("disabled", "disabled");
$(v).find("input[type=submit]").attr("disabled", "disabled");
$(v).find("input[type=button]").attr("disabled", "disabled");
);
控件位于 radwindow 弹出窗口中并链接到 radcombobox 更改事件,但是,在组合框事件将任一 raddatepicker 的 enabled 属性设置为 true 后被禁用后,只有日历图标再次可用,文本区域保持只读状态。
感谢您的帮助。 鸢尾花
[编辑]
通过设置date1.dateinput.enabled = true
设法解决了这个问题。问题是 textarea 保持只读状态而不是被禁用,并且 jquery 没有正确激活它。
【问题讨论】:
【参考方案1】:使用控件提供的客户端API(http://www.telerik.com/help/aspnet-ajax/calendar-client-side-rad-datepicker.html),因为它不仅仅是HTML的集合,所以启用它必须启用其他功能和代码。这对我有用:
<telerik:RadDatePicker runat="server" ID="rdp1" Enabled="false"></telerik:RadDatePicker>
<asp:Button ID="Button1" Text="enable picker" OnClientClick="enableDatePicker(); return false;" runat="server" />
<script>
function enableDatePicker()
$find("<%=rdp1.ClientID%>").set_enabled(true);
</script>
这也是一种不依赖于知道控件 ID 的方法 - 它遍历页面上所有禁用的 HTML 元素,检查 IScriptControl 是否与它们关联以及它是否具有 set_enabled() API,然后调用它。由于日期选择器是复合控件,实际的日期输入被禁用,您还必须启用其父级 - 日期选择器,因此是第二个嵌套 if。
function enableDatePicker()
$telerik.$("[disabled]").each(function (index, elem)
if (elem.control && elem.control.set_enabled)
elem.control.set_enabled(true);
if (elem.control.get_owner && elem.control.get_owner().set_enabled)
elem.control.get_owner().set_enabled(true);
);
【讨论】:
以上是关于Raddatepicker textarea 在设置 enabled = true 后保持只读的主要内容,如果未能解决你的问题,请参考以下文章
如何使用数据库检索日期设置 raddatepicker 日期