这是我的代码:
$("#myCheckBox").click(function () {
if (!$(this).is(':checked')) {
$('#txtDateFrom').attr('readonly', true);
$('#txtDateTo').attr('readonly', true);
$('#txtDateFrom').val('01/01/2012');
$('#txtDateTo').val('31/12/2012');
$('#txtDateFrom').datepicker(this.checked ? "disable" : "disable");
$('#txtDateTo').datepicker(this.checked ? "disable" : "disable");
}
else {
$('#txtDateFrom').attr('readonly', false);
$('#txtDateTo').attr('readonly', false);
$('#txtDateFrom').datepicker(this.checked ? "disable" : "enable");
$('#txtDateTo').datepicker(this.checked ? "disable" : "enable");
$('#txtDateFrom').datepicker({ dateFormat: 'dd/mm/yy' });
$('#txtDateTo').datepicker({ dateFormat: 'dd/mm/yy' });
}
});
取消选中复选框并再次检查后,文本框仍然处于禁用状态。为什么呢?
答案 0 :(得分:3)
这可能是你的问题:
$('#txtDateFrom').datepicker(this.checked ? "disable" : "disable");
$('#txtDateTo').datepicker(this.checked ? "disable" : "disable");
应该是这样的:
$('#txtDateFrom').datepicker(this.checked ? "disable" : "enable");
$('#txtDateTo').datepicker(this.checked ? "disable" : "enable");
答案 1 :(得分:1)
尝试.removeAttr()
,而不是通过.attr()
将readonly设置为false。例如:
$('#txtDateFrom').removeAttr('readonly');