在Asp.net中使用Javascript启用禁用控件

时间:2014-06-24 17:26:46

标签: c# javascript jquery asp.net asp.net-mvc

我在asp.net中有一个fileupload控件,Calendar控件和一个Textbox控件,应该在选中复选框时启用或禁用它。我已经包含了一个javascript函数来执行相同的操作,对于asp:Textbox我能够成功执行启用禁用但是对于RadDatePicker和AsyncFileUpload启用禁用未应用。

以下是控件

<telerik:RadDatePicker ID="cmgStartDate">
<ajaxToolkit:AsyncFileUpload ID="AsyncFileUploadComingSoon">
<asp:TextBox ID="txtcmgStartTime">

<asp:CheckBox ID="chkIsFutureMovie" OnChange="javascript:enablecmgSoonControls()"/>

以下是选中/取消选中复选框时调用的javascript函数..

    <script type="text/javascript" language="javascript">
        function enablecmgSoonControls() {
            var imageUpload = "<%= AsyncFileUploadComingSoon.ClientID %>";
            var cmgsoonStartDate = "<%= cmgStartDate.ClientID %>";
            var cmgText = "<%= txtcmgStartTime.ClientID %>";

            if (document.getElementById("<%= chkIsFutureMovie.ClientID %>").checked == true) {
                document.getElementById(imageUpload).disabled = false;
                document.getElementById(cmgsoonStartDate).disabled = false;
                document.getElementById(cmgText).disabled = false;
            }
            else {
                document.getElementById(imageUpload).disabled = true;
                document.getElementById(cmgsoonStartDate).disabled = true;
                document.getElementById(cmgText).disabled = true;
            }
        }
</script>

我尝试用$ find识别控件,但它没有用。我在这里错过了什么..

2 个答案:

答案 0 :(得分:0)

而不是写

document.getElementById(<%= txtcmgStartTime.ClientID %>")

尝试使用:

document.getElementById("cmgstartDate")
document.getElementById("AsyncFileUploadComingSoon")

我认为这会有效,因为最终您编写的代码最终会显示为html。在运行您的网站时,还要做一件事,检查控制元素并确认您创建的ID和我们在HTML中获取的ID是否相同。

答案 1 :(得分:0)

我能够通过直接指定其elementId来成功启用/禁用Ajax控件。然而,主要问题是Telerik控制。我已经修改了我的脚本,如下所示启用/禁用<telerik:RadDatePicker ID="cmgStartDate">。希望它可以帮到某人。

<script type="text/javascript" language="javascript">
        function enablecmgSoonControls() {

            var picker = $find("<%=cmgStartDate.ClientID %>")
            var cmgText = "<%= txtcmgStartTime.ClientID %>";

            if (document.getElementById("<%= chkIsFutureMovie.ClientID %>").checked == true) {
                document.getElementById(cmgText).disabled = false;
                picker.set_enabled(true);
                picker.get_popupButton().disabled = false;
                picker.get_popupButton().className = "rcCalPopup";
            }
            else {
                document.getElementById(cmgText).disabled = true;
                picker.set_enabled(false);
                picker.get_popupButton().disabled = true;
                picker.get_popupButton().className = "rcCalPopup rcDisabled";
            }
        }
</script>