以下switch语句不捕获不存在的cookie。如何检查JavaScript中的空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为空/未定义,我还没有弄清楚如何捕获它。
见http://jsfiddle.net/uwsaf/ ...是无二'null'也超过' '''和'0'返回FALSE。尝试移动案例的顺序 – andlrc
'var stateCookie = $ .cookie(“ia_state”)|| '';'使用jQuery cookie getter和grant,你会得到一个cookie或空字符串。 –
你刚刚回答了某人的问题,说这是未定义的。这与getCookie函数有关。检查该函数,因为它可能返回cookie,如果找到,只是退出,如果没有发现任何东西,则返回任何东西,使你未定义。你也可以在交换机上添加“case undefined:”(查看更新后的文章)。 – craniumonempty