我对jQuery很新。我在用户控件中有一个Jquery日期选择器。我在datepicker中添加了“disable”属性。每当我保存页面(具有此用户控件)时,禁用设置为true的datepicker为空。所有其他日期选择器保存得很好。
这是我的代码。
ASPX
< USERCONTROL:DATEPICKER id =“dpBirthDate”startyear =“1980”runat =“server”Disable = true>
ASCX < input type =“text”size =“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
$(document).ready(function(){
$("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值在禁用时为空,但是否则正常工作? 谢谢你的到来。
答案 0 :(得分:1)
只是一个猜测,但尝试使用READONLY而不是DISABLED?
答案 1 :(得分:0)
我认为也使用readonly属性为true,不会更改回发中的初始值
如果坚持通过readonly属性使用它,您将更改获取文本的覆盖 像这样
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;
}
}
此致
答案 2 :(得分: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");
}