js全局变量在方法中赋值后返回undefined
定义了timeStart,timeEnd两个全局变量,可在方法中赋值时只在方法内部起了作用,最后外部调用仍未undefined,请问哪里出现了错误,该怎样修改?
主要的代码如下:
<html>
<head>
</head>
<body>
<%
def reportName = params.name;
def template = params.template;
def dataModel = params.dataModel;
%>
<div id="container"></div>
<table>
<tr><td>
起始日期:<input type="text" name="startDate" id="startDate" autocomplete="off" size="30" value="" />
</td></tr>
<tr><td>
结束日期:<input type="text" name="endDate" id="endDate" autocomplete="off" size="30" value="" />
</td></tr>
<tr>
<td>
请选择报表的格式:
</td>
</tr>
</table>
<div id="cal1Container"></div>
<script type="text/javascript">
(function() {
var timeStart;
var timeEnd;
var init = function() {
cal1 = new YAHOO.widget.Calendar("cal1","cal1Container");
cal1.selectEvent.subscribe(getDate, cal1, true);
cal1.renderEvent.subscribe(setupListeners, cal1, true);
Event.addListener(['startDate', 'endDate'], 'focus', showCal);
Event.addListener(['startDate', 'endDate'], 'blur', hideCal);
cal1.render();
hideCal();
}
var getDate = function() {
var calDate = this.getSelectedDates()[0];
calDate = (calDate.getMonth() + 1) + '/' + calDate.getDate() + '/' + calDate.getFullYear();
cur_field.value = calDate;
over_cal = false;
timeStart = document.getElementById("startDate").value;
timeEnd = document.getElementById("endDate").value;
alert(timeStart)//这里能够显示出正确的值
hideCal();
}
var showCal = function(ev) {
}
var hideCal = function() {
}
var sUrl = "/GEMmanager/script/run/reportMaster?startDate=" + timeStart + "&_format=HTML&_name=${reportName}&endDate=" + timeEnd + "&_file=${template}";//此url调用后timeStart和timeEnd均为Undefined,上面的全局变量只在方法内起了作用...
</script>
<form>
<input type="hidden" name="type" value="form" />
<span id="btn"></span>
</form>
</body>
</html>