以下のコードは、Chrome と IE の両方で正常に動作します。
$.get("../ajax/BTBookAppointment.aspx?dsl=" + telNumberBox.value + "&date=" + requiredDate.value + "×lot=" + ddTimeslot.value, function (response, status, xhr) {
//DO some stuff
});
ただし、Firefox (バージョン 11.0) では、コールバック関数がヒットすることはありません。ブレークポイントでfirebugを使用し、コールバックが入力されないことを確認しました。ページが更新されたように見え、以前 JavaScript によって表示されていた要素が再び表示されます。
バグが何であるか、またはそれをさらにデバッグする方法についても途方に暮れています。アドバイスをいただければ幸いです。
EDIT : Fiddler と firebug は HTTP get を表示しません。また、 $.get を明示的に書き出そうとしましたが(以下を参照)、同じ動作が得られました
EDIT2: Darin Dimitrov が言及した提案を試してみましたが、それでも同じ動作を示します (ボタンをクリックするとページがポストバックされます)。これがそのままのコードです。
Javascript
function bookAppointment() {
var url = "../ajax/BTBookAppointment.aspx";
var dsl = "01753893530"
var date = "20-04-2012";
var timeslot = "PM";
var data = { dsl: dsl, date: date, timeslot: timeslot };
$.ajax({
url: "../ajax/BTBookAppointment.aspx",
data: data,
success: function (response, status, xhr) {
alert('into callback');
},
});
return false;
}
HTML
<button id="btnBookAppointment" onclick="bookAppointment();"> Book</button>