我在项目中需要一个功能,我认为bootstrap datepicker仍然没有提供。我想启用/禁用datepicker字段,以便用户无法更改其值。类似于readOnly功能。
关于它的任何想法?
提前谢谢。
答案 0 :(得分:10)
$("#nicIssuedDate").prop('disabled', true);
这对我有用 Bootstrap Datepicker和Jquery
答案 1 :(得分:3)
您可以执行以下操作:
禁用:
$("#date").datepicker("option", "disabled", true);
并启用:
$("#date").datepicker("option", "disabled", false);
答案 2 :(得分:2)
您可以使用Bootstrap的onRender
事件来禁用 datepicker
。
onRender
:在datepicker中呈现一天时会触发此事件。应该返回一个字符串。返回'禁用'以禁用 被选中的日子。
答案 3 :(得分:2)
这样做:
$('#idOfYourCalendar').data("DateTimePicker").disable();
官方文件: https://eonasdan.github.io/bootstrap-datetimepicker/Functions/
答案 4 :(得分:1)
尝试将选项enabledDates设置为仅显示您要显示的日期的数组。同时将日期设置为该日期。所有其他日期将被禁用。
enabledDates: ['your_date_to_show'],
例如
$('#Date').datetimepicker({
inline: true,
viewMode: "days",
format: "YYYY-MM-DD",
enabledDates: [fetchDate("Date")],
})
.data("DateTimePicker")
.date(fetchDate("Date"));
$('#Date').ready(function (){
$("#Date").data("DateTimePicker").date(fetchDate("Date"));
});
答案 5 :(得分:1)
使用此代码
$("#nicIssuedDate").prop('disabled', true);
答案 6 :(得分:0)
我找到了一个解决方案,但只是通过修改引导程序日历代码。覆盖this._events部分以禁用keyup / down事件对我有用:
_buildEvents: function(){
if (this.isInput) { // single input
this._events = [
[this.element, {
focus: $.proxy(this.show, this),
keyup: $.proxy(this.update, this),
keydown: $.proxy(this.keydown, this)
}]
];
}
else if (this.component && this.hasInput){ // component: input + button
this._events = [
// For components that are not readonly, allow keyboard nav
[this.element.find('input'), {
//focus: $.proxy(this.show, this),
//keyup: $.proxy(this.update, this),
//keydown: $.proxy(this.keydown, this)
}],
[this.component, {
click: $.proxy(this.show, this)
}]
];
}
else if (this.element.is('div')) { // inline datepicker
this.isInline = true;
}
else {
this._events = [
[this.element, {
click: $.proxy(this.show, this)
}]
];
}
this._secondaryEvents = [
[this.picker, {
click: $.proxy(this.click, this)
}],
[$(window), {
resize: $.proxy(this.place, this)
}],
[$(document), {
mousedown: $.proxy(function (e) {
// Clicked outside the datepicker, hide it
if (!(
this.element.is(e.target) ||
this.element.find(e.target).length ||
this.picker.is(e.target) ||
this.picker.find(e.target).length
)) {
this.hide();
}
}, this)
}]
];
},
答案 7 :(得分:0)
我设法获得了可接受的解决方案如下:
$(".date").datetimepicker({
defaultDate: moment(),
format: 'YYYY-MM-DD'
}).end().on('keypress paste', function (e) {
e.preventDefault();
return false;
});
希望它也适合你!
答案 8 :(得分:-5)
你只需要使用jquery attr方法
$('').attr('disabled', true);
多数民众赞成:)