多言語のログインサイトがあり、jQueryを使用してログイン情報(ユーザーと言語)をCookieに保存したいと思います。フォームには2つのアンカータグと、選択した言語に基づいて動的に変化するいくつかのラベルがあります。
<form id="frm0" method="post" action="">
<fieldset>
<div id="lng" style="text-align: right">
<a href="index.php?lang=en" id="en" title="English"><img src="pics/files/en.png" alt="English" /></a>
<a href="index.php?lang=de" id="de" title="Deutsch"><img src="pics/files/de.png" alt="Deutsch" /></a>
</div>
<div>
<label for="usr" style="font-weight: bold">User for en/Benutzer for de: </label>
<input name="usr" type="text" id="usr">
</div>
<div>
<label for="passw" style="font-weight: bold">Password for en/Kennwort for de: </label>
<input name="passw" type="password" id="passw">
</div>
</fieldset>
<input type="submit" name="sbmt" id="sbmt" value="Login">
</form>
次のコード:
$(document).ready(function(){
$('a').click(function(){
var language = $(this).attr("id");
$.cookie('lang', language, { path: '/', expires: 14 });
});
});
Cookieを正しく設定しますが、アンカータグを1回クリックした後のみです。言語を再度変更しても、Cookieの値は更新されません。ただし、「returnfalse」を追加すると、次のようになります。
$(document).ready(function(){
$('a').click(function(){
var language = $(this).attr("id");
$.cookie('lang', language, { path: '/', expires: 14 });
return false;
});
});
アンカータグをクリックするたびにCookieの値が正しく設定されますが、ページのラベルは選択した言語に基づいて変更されません(ページが更新されないように)。
私も試しました:
$('#lng a').click(function() {
$.cookie('lang', this.id, { path: '/', expires: 14 });
return false;
});
しかし、同じ振る舞い。何か助けてください?ありがとうございました。