以下switch语句未捕获不存在的cookie。
switch (stateCookie) {
case 'Virginia':
window.location = '/Teacher-Login/VA';
break;
case 'North Carolina':
window.location = '/Teacher-Login/NC';
break;
case 'South Carolina':
window.location = '/Teacher-Login/SC';
break;
case null:
window.location = '/Teacher-Login/VA';
break;
case '':
window.location = '/Teacher-Login/VA';
default:
window.location = '/pages/state-login/login.html';
好的,我已经尝试了几件事,但是我仍然莫名其妙地遇到了麻烦。这是我目前的代码:
$('#welcome select').change(function () {
var stateSelected = $('option:selected', this).val();
var stateCookie = getCookie("ia_state");
if(stateSelected != stateCookie)
{
setCookie('ia_state', stateSelected);
switch (stateCookie) {
case 'Virginia':
case null:
case '':
window.location = '/Teacher-Login/VA';
break;
case 'North Carolina':
window.location = '/Teacher-Login/NC';
break;
case 'South Carolina':
window.location = '/Teacher-Login/SC';
break;
default:
window.location = '/pages/state-login/login.html';
}
}
});
switch语句正在评估中,但始终使用默认情况。我还没有弄清楚如果cookie为null / undefined时如何捕获它。
最佳答案
我同意麦克·斯图尔特的观点。您错过了一个休息时间,因此如果返回的是“”,则它将继续使用默认语句。如果更改该结果后仍然得到奇怪的结果,则可能是问题出在其他地方。
var loc = '';
switch (stateCookie) {
case 'Virginia':
case null:
case '':
case undefined:
loc = '/Teacher-Login/VA';
break;
case 'North Carolina':
loc = '/Teacher-Login/NC';
break;
case 'South Carolina':
loc = '/Teacher-Login/SC';
break;
default:
loc = '/pages/state-login/login.html';
break;
};
window.location = loc;
编辑:添加了未定义的大小写