私は非常に単純なhtmlフォームを持っています:
<form enctype="multipart/form-data" method="POST" action="fileupload" id="image-upload-form" target="iframe-post-form">
<input type="file" name="file" id="file-to-upload">
<input type="submit" value="upload" id="image-upload-submit">
</form>
Iframe Post Formライブラリを使用して画像を送信しています。
次のjqueryを使用している場合、完全に機能します。
$(document).ready(function(){
$('#image-upload-form').iframePostForm({
post : function() {
$("#progress-indicator").show();
},
complete : function (response) {
$("#progress-indicator").hide();
try {
json = $.parseJSON(response);
} catch (e) {}
}
});
});
ここで、ファイルを選択した直後にページが自動的に画像を送信する必要がある一方で、送信ボタンを削除したいと思います。私はjqueryとjscriptの初心者で、些細な間違いをしているに違いありませんが、ほとんど同じコードが機能しない理由がわかりません。これが問題のあるコードです (firebug で確認できますが、そのコード内のブレークポイントがヒットしていることがわかりますが、画像は送信されていません)。
$(function() {
$('#file-to-upload').bind('change', function(event) {
$('#image-upload-form').iframePostForm({
post : function() {
$("#progress-indicator").show();
},
complete : function (response) {
$("#progress-indicator").hide();
try {
json = $.parseJSON(response);
} catch (e) {}
}
});
});
});
大変お世話になりました。
解決:
@Huangism の提案を受け取った後、最終的に解決策を見つけました。誰かが同じ問題を解決する必要がある場合に備えて投稿します。
$(function() {
$('#file-to-upload').bind('change', function(event) {
$('#image-upload-form').submit().iframePostForm({
post : function() {
$("#progress-indicator").show();
},
complete : function (response) {
$("#progress-indicator").hide();
try {
json = $.parseJSON(response);
} catch (e) {}
}
});
});
});