我有以下代码:
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事件调用的,该事件与下拉列表相关联。下拉列表包含“enable”,“disable”值,并在托管bean中设置属性。我的问题是,在javascript函数中,var isEnabled仅在加载页面时设置。最初设置为false,之后,如果我在下拉列表中更改值,则javascript中的变量不会更新,即使我的bean发回正确的值。因此,如果它以false值加载,即使它应该更新为true,它也会保持这种状态,反之亦然。
答案 0 :(得分:0)
我认为你完全错了。仅在加载页面时才会触发此代码。如果您没有刷新页面或在dom中再次添加该脚本,则无法在客户端上使用它。你应该寻求一个完全不同的解决方案。
你应该做的是为函数添加js回调。
答案 1 :(得分:0)
isEnabled变量绑定了您的bean,但此脚本不再运行。在更改bean值之后再次尝试调用函数showDatePicker()。 我认为您应该使用原型创建一个函数showDatePicker(isEnabled){...}