asp:禁用文本框时禁用DatePicker

时间:2016-10-05 16:11:54

标签: javascript jquery asp.net

我有asp:Textbox

<asp:TextBox ID="txtDate" runat="server" ReadOnly="false" />

我使用jQuery添加了一个datepicker

<script type="text/javascript">
function Bind() {
 $('#<%=txtDate.ClientID %>').datepicker({
                dateformat: 'MM/dd/yyyy',
                minDate: '01/01/1947',
                maxDate: 0,
                showOn: 'button',
                buttonImage: '../../images/Calendar_scheduleHS.png',
                buttonImageOnly: true,
                buttonText: ''
            }).mask('99/99/99?99', { placeholder: ''
            }).change(function () {
               dateComplete('<%=txtDate.ClientID %>', false, 'The Date cannot be a future date.', 'Date of Contact', $('#<%=hidSavedInteractionDate.ClientID %>').val(), $('#<%=lblNumber.ClientID %>').text(), '<%=txtDate.ClientID %>');
            });
}

</script>

 <script type="text/javascript">
        Sys.Application.add_load(Bind);
 </script>

我在后面的代码vb.net中禁用了asp:Texbox

txtDate.ReadOnly = True
txtDate.Enabled = False

我希望将日期选择器禁用。我试过这个,但它没有用。

代码vb.net:

ClientScript.RegisterStartupScript(Me.GetType, "HideDate", "HideDate();", True)

Jquery的:

<script type="text/javascript">
HideDate() {

    if (disabled == true) {
        $("#txtMyTextBox").datepicker('disable');
    }
    else {
        $("#txtMyTextBox").datepicker('enable');
    }


}
 </script>

在旁注中,我使用了这个下方并且它确实禁用了日期选择器,但它禁用了asp:Textbox是否被禁用。我希望仅在asp:Textbox被禁用时禁用日期选择器。

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

        if (disabled == true) {
            $("#txtMyTextBox").datepicker('disable');
        }
        else {
            $("#txtMyTextBox").datepicker('enable');
        }


    });
    </script>

2 个答案:

答案 0 :(得分:1)

将您的JavaScript更改为:

<script type="text/javascript">
   DisableDate() 
     { $('#<%=txtDate.ClientID %>').datepicker('disable'); }

   EnableDate() 
     {  $('#<%=txtDate.ClientID %>').datepicker('enable');  }
</script>

然后在后面的代码中,禁用datepicker调用:

txtDate.Enabled = False
ClientScript.RegisterStartupScript(Me.GetType, "DisableDate", "DisableDate();", True)

启用datepicker调用:

txtDate.Enabled = True
ClientScript.RegisterStartupScript(Me.GetType, "EnableDate", "EnableDate();", True)

答案 1 :(得分:0)

Sunil的回答很有帮助,但我用更简单的解决方案做到了这一点。

我将此添加到jQuery代码中,我初始化了datepicker:

 if ($('#<%=txtDate.ClientID %>').prop("disabled")) {
                $('#<%=txtDate.ClientID %>').datepicker("option", {disabled:true});
            }