2010-06-08 1 views
2

Я довольно новичок в jQuery. У меня есть пользовательский элемент JQuery в пользовательском элементе управления. Я добавил свойство disable для datepicker. Всякий раз, когда я сохраняю страницу (с помощью этого usercontrol), datepicker с отключенным значением true является пустым. Все остальные датпикеры сохраняют штраф.datepicker значение пусто, когда отключено, jQuery

Вот мой код.

ASPX

< UserControl: DatePicker ID = "dpBirthDate" StartYear = "1980" Runat = "сервер" Отключить = TRUE>

ASCX < тип ввода = "текст" размер = "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

$ (документ) .ready (функция() {

$("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"); 
     } 

    }); 


}); 

Я извиняюсь, я не знаю, как отформатируйте код здесь. Я извиняюсь за загроможденный код. Может ли кто-нибудь сказать мне, почему значение datepicker пусто, когда оно отключено, но работает нормально? Спасибо i .

+0

Это HTML-вещь - отключенные поля формы не отправляются на сервер браузером; вместо этого используйте только чтение. –

ответ

1

Просто догадайтесь, но попробуйте использовать READONLY вместо DISABLED?

0

Я думаю также, используя только для чтения свойства истинно, не меняет intial значения в постбэк

, если настаивает на том, чтобы использовать его только для чтения свойства, которое изменит переопределение получить текст как это

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"); 
}