以下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;


编辑:添加了未定义的大小写

07-24 09:50
查看更多