我在JavaScript
中有一个开关语句,其中键入事件处理程序不会将回调返回到我的变量(在这种情况下为var test)。
这是无效的最后情况(110)。
这是代码。希望您可以帮助我:
var getDateRange;
$(".nav-reports").append(
'<div id="daterange-container">' +
'<select id="daterange">' +
'<option value="0">Choose duration:</option>' +
'<option value="10">Today</option>' +
'<option value="20">Yesterday</option>' +
'<option value="30">This week</option>' +
'<option value="40">Last week</option>' +
'<option value="50">This month</option>' +
'<option value="60">Last month</option>' +
'<option value="70">This year</option>' +
'<option value="80">Last year</option>' +
'<option value="100">Everything</option>' +
'<option value="110">Last x days</option>' +
'</select>' +
'</div>'
);
getDateRange = function () {
var test;
var dateString = "yyyy-MM-dd";
var selectedOption = parseInt($('#daterange').change().val());
$('.daterange-input').detach();
switch (selectedOption) {
case 10: // works
break;
case 20: // works
break;
case 30: // works
break;
case 40: // works
break;
case 50: // works
break;
case 60: // works
break;
case 70: // works
break;
case 80: // works
break;
case 100: // works
break;
case 110: // doesnt't work
$('#daterange-container').append('<input class="daterange-input" type="text" maxlength="4">');
$('.daterange-input').keyup(function () {
test = '/' + Date.today().addDays(-parseInt($(this).val())).toString(dateString) + '/' + Date.today().toString(dateString);
});
break;
}
return test;
};
预先感谢您。
我在这里调用getDaterange功能:
$('.' + report.description).click(function () {
var dateRange = getDateRange();
// some more code not in relation
})
是的。多亏了@Bellian,我明白了。
在getDaterange之外定义的测试并删除了返回测试语句。
现在我在分配var Daterange之前致电GetDaterange。
这是工作代码:
var test;
getDateRange = function () {
var dateString = "yyyy-MM-dd";
var selectedOption = parseInt($('#daterange').change().val());
$('.daterange-input').detach();
switch (selectedOption) {
case 110:
$('#daterange-container').append('<input class="daterange-input" type="text" maxlength="4">');
$('.daterange-input').keyup(function () {
test = '/' + Date.today().addDays(-parseInt($(this).val())).toString(dateString) + '/' + Date.today().toString(dateString);
});
break;
}
};
,然后:
$('.' + report.description).click(function () {
getDateRange();
var dateRange = test;
});
感谢@Bellian和其他所有人。