送信時に画像をアップロードするフォームの次のコードがあります。IEを除く現在のすべてのブラウザで正常に動作します(バージョンは動作しません):
$('#photo-upload').live('change', function()
{
$('#'+currentId+' > img').css('opacity',0);
$('#'+currentId).addClass('hasImg');
index = currentId.replace(/place-/i, "");
$('#photo-index').val( index );
$("#imageform").ajaxForm({ target: '#photo-'+index }).submit();
// initialize photo settings
photo_x_pos = 0;
photo_y_pos = 0;
photo_angle = 0;
});
そしてフォームHTML:
<form id="imageform" action="/orders/photo_upload" method="post">
<div id="upload">
<input type="file" name="data[Photo][image]" id="photo-upload" />
</div>
<input type="hidden" name="data[Photo][index]" id="photo-index" />
<input type="hidden" name="data[Photo][width]" id="photo-width" />
<input id="uploadthephoto" type="submit" value="Submit"/>
</form>
IEで壊れているのは、フォームが送信されていないことのようです。要素です#photo-upload
。フォームのIDです。したがって、理想的には、ユーザーがファイルを選択したときにフォームがターゲットとともに送信され、アップロードされた画像が返されます。<input type="file"/>
#imageform
#photo-0
私は何か間違ったことをしていますか?IEを壊さないajaxFormを送信する別の方法はありますか?