javascript - 当输入框为只读时如何禁用日期选择器

标签 javascript jquery datepicker

当输入框处于只读状态时如何关闭日期选择器? 这是我的文本框

<input type="text" name="letter_date" value="12/05/2019"  id="letter_date" class="form-control datepicker" placeholder="Masukkan Tanggal Nota" data-toggle="datepicker" readonly="readonly" />

我尝试使用此 JavaScript 代码,但当我选择文本框时,它仍然显示日期选择器。

$('[data-toggle="datepicker"]').datepicker({
    beforeShow: function(i) {
      if ($(this).prop('readonly')) {
        e.preventDefault();
        e.stopImmediatePropagation();
        return false;
        }
    },
    format : 'dd/mm/yyyy',
    autoHide : true
});

最佳答案

您可以使用 datepicker("option", "disabled", true); 禁用datepicker

$('[data-toggle="datepicker"]').datepicker({
    beforeShow: function(i) {
        if ($(this).prop('readonly')) {
          console.log('readonly is true');
          $(this).datepicker("option", "disabled", true);
          return;
        }
    },
    format : 'dd/mm/yyyy',
    autoHide : true,
});
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input type="text" name="letter_date" value="12/05/2019"  
    id="letter_date" class="form-control datepicker" placeholder="Masukkan Tanggal Nota" 
    data-toggle="datepicker" readonly="readonly"/>

--编辑--

对于多个输入

$('[data-toggle="datepicker"]').datepicker({
    beforeShow: function(i) {
        if ($(this).prop('readonly')) {
          $(this).datepicker("option", "disabled", true);
          return;
        } 
    },
    format : 'dd/mm/yyyy',
    autoHide : true,
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<input type="text" name="letter_date" value="12/05/2019"  
    id="letter_date" class="form-control datepicker" placeholder="Masukkan Tanggal Nota" 
    data-toggle="datepicker" readonly/>

<input type="text" name="letter_date" value="12/05/2019"  
id="letter_date1" class="form-control datepicker" placeholder="Masukkan Tanggal Nota" 
data-toggle="datepicker"/>

<input type="text" name="letter_date" value="12/05/2019"  
id="letter_date2" class="form-control datepicker" placeholder="Masukkan Tanggal Nota" 
data-toggle="datepicker" readonly/>

关于javascript - 当输入框为只读时如何禁用日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56214711/

相关文章:

javascript - 转到下一页 - 按钮

javascript - 如何在 JQuery 中获取所有元素并将它们作为数组发送

javascript - WordPress 从 Angular JS 功能打开媒体库(ng-click)

javascript - 如何使用 javascript 将东部标准时间设置为 Datepicker (jquery ui)

ios - 如何在 iOS 中使用 DatePicker 只接受月份和年份

javascript - mvc.net 4 ajax 使用操作 httpGet 不适用于 httpPost

javascript - D3 SVG 到 Canvas

javascript - 跟踪/观察文本框值已更改

javascript - jQuery datepicker 在带有 Safari 的 iPhone 上显示输入

jQuery datepicker 在 IE8 中遇到问题?