チェックボックスの値をチェックすれば、それに一致するデータを取得するjQueryの処理を書きました。
しかし、クロームやFirefoxではきちんと動作するのですが、IEでは全く反応しません。
いろいろと調べたのですが、解決方法が見つかりませんでした。
どうかよろしくお願いします。
$(function(){
$("input:checkbox").change(function(){getContents();});
$('#time').change(function(){getContents();});
$('#score').change(function(){getContents();});
});
$(".pagination a").live('click', function(){
$("#serviceListSection").load(this.href);
return false;
});
function getChecked(name) {
var AllVals = $('input[name="' + name + '"]:checked').map(function() {
return this.value;
});
AllVals = $.makeArray(AllVals).join('|');
return AllVals;
}
function getContents(){
var timeId =$('#time').val();
var countryId = getChecked('country_id[]');
var genreId = getChecked('genre_id[]');
var feelingId = getChecked('feeling_id[]');
var partnerId = getChecked('partner_id[]');
var scoreId =$('#score').val();
var http = $.get (
"results/title:/time:" + timeId + "/country_id:" + countryId + "/genre_id:" + genreId +
"/feeling_id:" + feelingId + "/partner_id:" + partnerId + "/score:" + scoreId,
null,
function ( data ) {
$("#serviceListSection").html(data);
}
)
エラーは表に出てこない場合もあります。
IE9ならF12を押すと開発者ツールが出るので、そのコンソールを見てエラーが出てないかを確認して下さい。
あとネットワークのキャプチャを開始をしてから同じ事を行なって期待するリクエストが発生しているかどうかも確認してみて下さい。
リクエストURLをサーバ側でチェックすると原因が分かりそうな気がします>質問者
まぁ「~」が怪しいのは最初から思ってましたが。
これvalueを~ではなく半角ハイフン「-」を使うようにして、サーバ側でもハイフンで区切られることを想定した修正をしてやれば直る気がしてきました。
もしくは「~」をURLエンコードしてやれば良いんじゃないかと。
回答1に追記したリンク先にある、キャッシュ無効化は試しましたか?
2012/07/05 17:30:10返事が遅くなりすいません。
2012/07/05 18:24:58$.ajaxSetup({ cache: false });
を追加したりしたのですが、効果はありませんでした。