こんにちは、私は ajax を使用してファイル アップロード機能を実装し、この種の実装では ajax を同期型に設定しました。ctp ファイルで次の jQuery ファイルを使用しました (default.ctp で CakePHP のデザイン パターンに従いました。jquery 1.4 を使用しました)。
'jquery-1_7.js','jquery.form.js','jquery-ui_1_9_1.js'
そして、すべてがFirefoxで正常に動作しています.IEに来て、動作していません.私のコードスニペットは次のとおりです.
var options = {
complete: function(response) {
var fileObj = jQuery.parseJSON(response.responseText);
var fileId = fileObj.FileNo;
var elemNo = fileId.replace('file', '');
if(fileObj.Txt == 'SUCCESS'){
//copy the id into global; variable
}
},
error: function(response) {
//display error
}
};
ajax 呼び出し
$('#sBtn').button().click(function(){
$.ajaxSetup({async:false});
files = []; //globalvaraiable
for(i=0; i<fileCnt; i++){
if ($('#addFile'+i).length > 0) {
$('#addFile'+i).ajaxForm(options);
$('#addFile'+i).submit();
window.setTimeout($('#addFile'+i).bind($('#addFile'+i)), 100); console.log(files);
}
}
$('#ContentId').ajaxForm($('input#contentIds').val(files));
$('#ContentId').submit();
$('#loadingImg').addClass('clear');
}
return false;
});
IEでは、次のエラーが発生しました
SCRIPT438: Object doesn't support property or method 'push'
jquery-1_7.js, line 3008 character 5