2010-06-08 57 views
2

我對jQuery相當陌生。我有一個用戶控件中的jquery datepicker。我爲datepicker添加了一個「禁用」屬性。每當我保存頁面(擁有此用戶控件)時,禁用設置爲true的日期選擇器爲空。所有其他datepickers保存罰款。當禁用時,datepicker值爲空,jquery

這是我的代碼。

ASPX

<用戶控件:日期選擇器ID = 「dpBirthDate」 startyear = 「1980」 RUNAT = 「服務器」 禁用=真>

ASCX < INPUT TYPE = 「文本」 大小= 「8」 runat =「server」id =「txtDate」name =「txtDate」onblur =「ValidateForm(this.id);」 />

ASCX代碼隱藏

Public Property Disable() As Boolean 
     Get 
      Return (txtDate.Disabled = True) 
     End Get 
     Set(ByVal bValue As Boolean) 

      If (bValue = True) Then 
       txtDate.Attributes.Add("Disabled", "True") 
      Else 
       txtDate.Attributes.Remove("Disabled") 
      End If 

     End Set 


    End Property 

我的Jquery

$(文件)。就緒(函數(){

$("input[id$=txtDate]").datepicker({ showOn: 'button', buttonImage: '<%=ConfigurationSettings.AppSettings("BASE_DIRECTORY")%>/Images/el-calendar.gif', buttonImageOnly: true }); 
    $("input[id$=txtDate]").mask("99/99/9999", { placeholder: " " }); 


    //Disable datepicker if "disable=true" 
    $("input[id$=txtDate]").each(function() { 

    if ($("input[id$=" + this.id + "]").attr("Disabled") == "True") {   
      $("input[id$=" + this.id + "]").datepicker("disable");    
     } 
     else if ($("input[id$=" + this.id + "]").attr("Disabled") == "False") { 
      $("input[id$=" + this.id + "]").datepicker("enable"); 
     } 

    }); 


}); 

對不起,我不知道如何格式化代碼在這裏。我很抱歉雜亂的代碼。 有人可以告訴我爲什麼日期選擇器值是空的,當它被禁用,但工作正常,否則? 謝謝我的進步。

+0

這是一個HTML事物 - 禁用的表單域不會被瀏覽器發送到服務器;改爲使用只讀。 – 2010-06-09 14:50:45

回答

1

只是猜測,但嘗試使用READONLY而不是DISABLED?

0

我覺得還使用只讀屬性爲true,回發不改變初值

如果堅持用只讀屬性使用它,你會改變得到文本 這樣

public override string Text 
{ 
    get 
    { 
     if (!base.ReadOnly) 
      return base.Text; 

     string s = HttpContext.Current.Request.Params[this.UniqueID]; 
     if (s == null) 
      return base.Text; 
     else 
     { 
      base.Text = s; 
      return s; 
     } 
    } 
    set 
    { 
     base.Text = value; 
    } 
} 
的覆蓋

問候

0

此代碼爲我工作

$('input:checkbox[name=cmpltInd]').change(function() { 
    if ($(this).is(':checked')) { 
     $('#efctDt').attr('readonly', true).datepicker("option", "showOn", "off"); 
    } 
    else { 
     $('#efctDt').attr('readonly', false).datepicker("option", "showOn", "focus"); 
    } 
}); 
if (($('input:checkbox[name=cmpltInd]') != "undefined") && ($('input:checkbox[name=cmpltInd]').prop("checked")== true)) { 
    $('#efctDt').attr('readonly', true).datepicker("option", "showOn", "off"); 
}