需要帮助。我无法在jquery中禁用我的日期选择器。我已经做了我的研究,但无济于事。下面是不启用/禁用datepicker的代码。 [增订]
<script type="text/JavaScript">
function pageLoad() {
$(function () {
$('#<%=TextBox_EventStartDate.ClientID %>').datepicker({
showOn: 'button',
buttonImage: '../Images/CalendarIcon1.gif',
changeMonth: true,
changeYear: true,
buttonImageOnly: true,
dateFormat: 'dd/mm/yy'
});
});
$(function () {
$('#<%=TextBox_EventEndDate.ClientID %>').datepicker({
showOn: 'button',
buttonImage: '../Images/CalendarIcon1.gif',
changeMonth: true,
changeYear: true,
buttonImageOnly: true,
dateFormat: 'dd/mm/yy'
});
});
$("#<%=CheckBox_PayEvent.ClientID %>").click(function () {
if ($("#<%=CheckBox_PayEvent.ClientID %>").is(":checked")) {
$("#<%=TextBox_EventStartDate.ClientID %>").attr('readonly', true);
$("#<%=TextBox_EventStartDate.ClientID %>").datepicker("disable");
$("#<%=TextBox_EventEndDate.ClientID %>").attr('readonly', true);
$("#<%=TextBox_EventEndDate.ClientID %>").datepicker("disable");
}
else {
$("#<%= TextBox_EventStartDate.ClientID %>").attr('readonly', false);
$("#<%= TextBox_EventStartDate.ClientID %>").datepicker("enable");
$("#<%= TextBox_EventEndDate.ClientID %>").attr('readonly', false);
$("#<%= TextBox_EventEndDate.ClientID %>").datepicker("enable");
}
});
}
</script>
感谢您的帮助!
答案 0 :(得分:4)
对我有用的两种方式:
$( "#datepicker" ).datepicker().datepicker('disable'); //disable [not disabled]
or .datepicker("disable");
没有其他方法适合我:
.datepicker("disabled");
.dpSetDisabled(false);
.datepicker( "option", "disabled", true );
我使用jQuery 1.9
答案 1 :(得分:2)
这个答案有点晚了,但如果这对其他人有帮助,我偶然发现了同样的问题,在线发布的常见解决方案 .datepicker(“禁用”) 强>对我不起作用
我查看了datePicker源代码并找到了以下内容,这对我有用。也许正确答案取决于版本。
禁用控制
$("#<%= TextBox_EventStartDate.ClientID %>").dpSetDisabled(true);
启用控制
$("#<%= TextBox_EventStartDate.ClientID %>").dpSetDisabled(false);
答案 2 :(得分:1)
尝试将该功能放入禁用逻辑中。例如,我有一种情况,如果附加的文本框被禁用,我希望datepicker消失,如下所示:
$(document).ready(function () {
//Turn off datepicker if the textbox has been disabled.
if(document.getElementById('<%=txtStartDate.ClientID%>').disabled == true){
$("#txtStartDate").datepicker('disable');
}
else { // Otherwise, enable and set up the .datepicker function
$("#txtStartDate").datepicker('enable');
// .datepicker function goes here
$('#<%=txtStartDate.ClientID%>').datepicker({
showOn: "button",
buttonImage: "/Admin/Images/calendar.gif",
buttonImageOnly: true,
});
}
});
我知道这篇文章很老,但希望有所帮助。
答案 3 :(得分:0)
尝试
$("#<%= TextBox_EventStartDate.ClientID %>").datepicker("disable");
答案 4 :(得分:0)
使用({disabled:true})肯定不起作用,datepicker(“禁用”)就是这样做的。
您确定是否符合条件语句并且正在触发click事件;你确定代码正在运行吗?
是否有可能空间被服务器端代码回显,因此传递给JQuery的ID是这样的:“#ElementID”?
答案 5 :(得分:0)
我理解的原因是当您选中/取消选中复选框时,它会回发页面并再次将日期选择器设置为文本框。 试试这个
<script type="text/JavaScript">
function pageLoad() {
$(function () {
$('#<%=TextBox_EventStartDate.ClientID %>').datepicker({
showOn: 'button',
buttonImage: '../Images/CalendarIcon1.gif',
changeMonth: true,
changeYear: true,
buttonImageOnly: true,
dateFormat: 'dd/mm/yy'
});
});
$(function () {
$('#<%=TextBox_EventEndDate.ClientID %>').datepicker({
showOn: 'button',
buttonImage: '../Images/CalendarIcon1.gif',
changeMonth: true,
changeYear: true,
buttonImageOnly: true,
dateFormat: 'dd/mm/yy'
});
});
$("#<%=CheckBox_PayEvent.ClientID %>").click(function () {
if ($("#<%=CheckBox_PayEvent.ClientID %>").is(":checked")) {
$("#<%=TextBox_EventStartDate.ClientID %>").attr('readonly', true);
$("#<%=TextBox_EventStartDate.ClientID %>").datepicker("disable");
$("#<%=TextBox_EventEndDate.ClientID %>").attr('readonly', true);
$("#<%=TextBox_EventEndDate.ClientID %>").datepicker("disable");
}
else {
$("#<%= TextBox_EventStartDate.ClientID %>").attr('readonly', false);
$("#<%= TextBox_EventStartDate.ClientID %>").datepicker("enable");
$("#<%= TextBox_EventEndDate.ClientID %>").attr('readonly', false);
$("#<%= TextBox_EventEndDate.ClientID %>").datepicker("enable");
}
return false; //This line will stop the postback to occur
});
}
</script>