【问题标题】:Enabling Disabling controls with Javascript in Asp.net在 Asp.net 中使用 Javascript 启用禁用控件
【发布时间】:2014-06-24 17:26:45
【问题描述】:

我在 asp.net 中有一个文件上传控件、日历控件和一个文本框控件,它们应该在选择复选框时启用或禁用。我已经包含了一个 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 识别控件,但没有成功。我在这里错过了什么..

【问题讨论】:

  • 如果检查cmgsoonStartDate的值并查看渲染的ID,它们是否相同?
  • 是的,值是一样的..

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


【解决方案1】:

而不是写

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

尝试使用:

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

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

【讨论】:

    【解决方案2】:

    我能够通过直接指定 elementId 来成功启用/禁用 Ajax 控件。然而,主要问题在于 Telerik 控制。我修改了我的脚本如下启用/禁用&lt;telerik:RadDatePicker ID="cmgStartDate"&gt;。希望它可以帮助某人。

    <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>
    

    【讨论】:

      猜你喜欢
      • 2011-01-23
      • 2012-01-16
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      • 1970-01-01
      • 2014-05-13
      相关资源
      最近更新 更多