Javascript dojo.ById不工作
我有一个日历小部件,它工作正常。我的问题是在选择日期时-代码找不到要设置为所选日期的字段,我看不出为什么不Javascript dojo.ById不工作,javascript,dojo,xpages,Javascript,Dojo,Xpages,我有一个日历小部件,它工作正常。我的问题是在选择日期时-代码找不到要设置为所选日期的字段,我看不出为什么不 <xp:panel id="calendarHolder"> <script> require([ "dijit/Calendar", "dojo/date", "dojo/domReady!", "dijit/registry" ], function(Calendar, date){
<xp:panel id="calendarHolder">
<script>
require([ "dijit/Calendar", "dojo/date", "dojo/domReady!", "dijit/registry" ],
function(Calendar, date){
new Calendar({ value: new Date(),
onValueSelected: function(date){calendarDateClicked(date);
}},"mycal");
//Set month in correct format
function setMonth(month){
switch(month)
{
case 1:
month = "Jan";
break;
case 2:
month = "Feb";
break;
case 3:
month = "Mar";
break;
case 4:
month = "Apr";
break;
case 5:
month = "May";
break;
case 6:
month = "Jun";
break;
case 7:
month = "Jul";
break;
case 8:
month = "Aug";
break;
case 9:
month = "Sep";
break;
case 10:
month = "Oct";
break;
case 11:
month = "Nov";
break;
case 12:
month = "Dec";
break;
}
return month;
}
//create Click action
function calendarDateClicked(date){
var d = new Date(date);
var month = (d.getMonth() + 1);
month = setMonth(month);
var day = '' + d.getDate() + ",";
var year = d.getFullYear();
var dateString = [month,day,year].join(" ");
dojo.byId('#{id:hiddenCalWidgetSelectedDate}').value = dateString
dojo.byId('#{id:calDate}').value = dateString;
XSP.partialRefreshPost("#{id:mainPanel}",{
onComplete: function() {
XSP.partialRefreshGet("#{id:sideViews}", {});
}
});//Post Value to server
}
});
</script>
<div id="mycal">
</div>
<div id="textbox">
<xp:inputText id="hiddenCalWidgetSelectedDate"
style="display:block;" value="#{sessionScope.selectedDate}">
<xp:this.defaultValue><![CDATA[#{javascript://
var d = new Date(/*Today*/);
var month = '' + (d.getMonth() + 1);
var day = '' + d.getDate();
var year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [day,month,year].join("/"); }]]></xp:this.defaultValue>
</xp:inputText></div>
</xp:panel>
需要([“dijit/Calendar”、“dojo/date”、“dojo/domReady!”、“dijit/registry”],
功能(日历、日期){
新日历({value:new Date(),
onValueSelected:函数(日期){calendarDateClicked(日期);
}},“mycal”);
//以正确的格式设置月份
功能设置月(月){
开关(月)
{
案例1:
月份=“一月”;
打破
案例2:
月份=“二月”;
打破
案例3:
月份=“三月”;
打破
案例4:
月份=“四月”;
打破
案例5:
月份=“五月”;
打破
案例6:
月份=“六月”;
打破
案例7:
月份=“七月”;
打破
案例8:
月份=“八月”;
打破
案例9:
月份=“九月”;
打破
案例10:
月份=“10月”;
打破
案例11:
月份=“11月”;
打破
案例12:
月份=“12月”;
打破
}
返回月份;
}
//创建单击操作
函数calendarDateClicked(日期){
var d=新日期(日期);
变量月=(d.getMonth()+1);
月=设定月(月);
var day=''+d.getDate()+“,”;
var year=d.getFullYear();
var dateString=[月、日、年].join(“”);
dojo.byId('#{id:hiddenCalWidgetSelectedDate}')。value=dateString
byId('#{id:calDate}')。value=dateString;
XSP.partialRefreshPost(#{id:mainPanel}){
onComplete:function(){
XSP.partialRefreshGet(“#{id:sideview},{}”);
}
});//将值发布到服务器
}
});
我得到的错误是dojo.byId(“#{id:hiddenCalWidgetSelectedDate}”)为null
任何帮助都将不胜感激
Graeme如果向XPage添加普通脚本块,EL将无法解析
您必须将代码添加到xp:scriptBlock中。如果将普通脚本块添加到XPage,EL将无法解析
您必须将代码添加到xp:scriptBlock中。太棒了!谢谢斯文,我快发疯了,看不见。太棒了!谢谢斯文,我快发疯了,看不见。