禁用jqueryui日期选择器

13

我有一个与输入文本关联的jQueryUI日期选择器。当我将输入文本框设置为只读时,我不希望日期选择器出现。这是否可能?我将从代码中将readonly属性设置为true或false。

<script>
    $(function() {
        $( "#datepicker" ).datepicker();
    });
    </script>



<div class="demo">

<p>Date: <input type="text" id="CompleteDate"> <input class="change" type="checkbox" name="chkBoxb" id="chkBoxb"> </p>

</div>


j$('#chkBoxb').click(function(){
   var paramChangeBoxes = j$('input:checkbox.change');

 if (j$(this).is(':checked')) {

  paramChangeBoxes.removeAttr('checked');
    j$('#chkBoxb').attr('checked', 'checked');

     j$('#CompleteDate').attr('readonly',false);
     j$("#CompleteDate").datepicker();


 }
 else
 {
  j$('#CompleteDate').attr('readonly',true);
 $( "#CompleteDate:not([readonly])"  ).datepicker();
 }

});

更新了代码

7个回答

37

可以这样禁用它:

$('#dateSelector').datepicker('disable');

并像这样启用它:

$('#dateSelector').datepicker('enable');

这里是一个可行的示例:http://jsfiddle.net/CG64h/8/


9

今天我遇到了这个问题,不幸的是,上面提供的答案都没有起作用。阅读datepicker代码,以下是jqueryui 1.10中的实现方法:

$(selector).datepicker("option", "disabled", true);

这可能会清除日期选择器中的值。找出来花了1小时,哈哈。 - QuantumBlindVimTaoist

7

这是您需要的翻译:

<div class="demo">
  <p>Date: <input type="text" id="CompleteDate"> <input class="change" type="checkbox" name="chkBoxb" id="chkBoxb"> </p>
</div>

<script>
  $('#chkBoxb').click(function(){
   if ($(this).is(':checked')) {
     $('#CompleteDate').attr('readonly',false)
       .datepicker();
   } else {
     $('#CompleteDate').attr('readonly',true)
       .datepicker("destroy");
   }
  });
</script>

1
当我将readonly属性更改为false时,我会得到日期选择器,但是一旦我再次将其更改为true,我需要禁用日期选择器,但现在它似乎仍然可见。我已更新问题中的代码。 - Prady
@Prady,我现在明白你的意思了。我更新了我的答案。 - Jeff the Bear


0

只需更改选择器并添加:enabled

 $( "#datepicker:enabled" ).datepicker();

0
if($("#").attr("enabled")=="false") {
  $("#").attr("disabled","true");
}

0
我认为你应该使用两个不同的文本框,并根据需要进行切换,以便一次只显示一个。第一个是普通文本框,第二个应用了jQuery Datapicker。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接