以下のswitch文は、存在しないクッキーを捕まえていません。javascriptでヌルクッキーをチェックする方法は?
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';
[OK]をいくつか試しましたが、私はまだ説明できないほど問題があります。
$('#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文が評価されていますが、常にデフォルトの場合になります。私はまだクッキーがnull/undefinedの場合にそれをキャッチする方法を理解する必要があります。
がhttp://jsfiddle.net/uwsaf/ ...ですを参照してください追加未定義の場合もオーバー ' '''と '0 'と' false'をnull'なので 'のために行きます。ケースのシーケンスを移動してみてください – andlrc
'var stateCookie = $ .cookie(" ia_state ")|| ''; 'jQueryのクッキーゲッターを使用して、あなたはクッキーまたは空の文字列を取得します。 –
あなたは誰かの質問に、それが未定義であると答えたばかりです。それはgetCookie関数と関係があります。その関数をチェックしてください。クッキーが見つかった場合はそれを返し、何も返さずにドロップアウトすると、未定義のまま残っているものが見つからない場合があります。スイッチに「case undefined:」を追加するだけでもかまいません(更新された記事を参照)。 – craniumonempty