2012-04-04 62 views
1

这里是我的代码:禁用/启用复选框,日期选择器点击

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

uncheking的复选框,并再次检查完后,文本框仍然禁用。为什么?

回答

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"); 
+0

有很大帮助..谢谢..乔恩 – sathya 2014-04-03 06:33:01

1

尝试.removeAttr()而不是通过.attr()将readonly设置为false。例如:

$('#txtDateFrom').removeAttr('readonly'); 
相关问题