【发布时间】:2016-12-14 09:14:48
【问题描述】:
我有以下代码:
function showDatePicker(){
var isEnabled=#{bean.isEnabled()};
if (isEnabled){
jQueryForDatepicker(".calendar").datepicker('enable');
jQueryForDatepicker(".calendar").datepicker({
changeMonth: true,
changeYear: true,
showOn: "button",
dateFormat:'yy-mm-dd',
buttonImage: "../resources/calendar.gif",
buttonImageOnly: true,
buttonText: "Select date",
beforeShow: function (input, inst) {
var rect = input.getBoundingClientRect();
setTimeout(function () {
inst.dpDiv.css({ marginTop: -input.offsetHeight + '10' , marginLeft: input.offsetWidth + '10' });
}, 0);
}
});
} else {
jQueryForDatepicker(".calendar").datepicker('disable');
}
}
该函数是从一个 ajax 事件中调用的,该事件与一个下拉列表相关联。下拉列表包含“启用”、“禁用”值,并设置托管 bean 中的属性。我的问题是,在 javascript 函数中,var isEnabled 仅在页面加载时设置。最初设置为 false,之后,如果我更改下拉列表中的值,即使我的 bean 发送回正确的值,javascript 中的变量也不会更新。因此,如果它以 false 值加载,即使它应该更新为 true,它也会保持这种状态,反之亦然。
【问题讨论】:
标签: javascript jsf datepicker