シナリオは次のとおりです。ページがあり、その中にjQueryUIダイアログを開くためのリンクがあります。ダイアログ内には小さなフォームがあります(画像をアップロードするため)。「アクション」ページは、ダイアログに返されることを目的とした画像を処理して返します。
現在、これはすべて期待どおりに機能しますが、何らかの理由で2回処理されています。視覚的には、送信と処理が2回行われていることを示すものは何もありません(Firebugを使用しているため、予想よりも処理に時間がかかった理由を理解しようとしていました)。
ここで以前の回答を見ると、jQueryコードはダイアログの外にあるべきであるという提案がありますが、すでにそうなっています。私は今考えることができるすべての道を使い果たしました。私はJS/jQueryを初めて使用するので、単純なものが欠落している可能性があります。いずれにせよ、ポインタは高く評価されています!以下の私のコード...
<head[...]>
<script>
$(function() {
$('#submitImage').bind('click', function(){
$(".preview").html('');
$(".preview").html('<img src="/images/elements/loaders/103.png" alt="Uploading...." style="text-align:center;"//>');
$("#imgadd").ajaxForm({
clearForm: 'true',
target: '.preview'
}).submit();
});
});
</script>
[...ページの残りの部分....]
<!-- Dialog -->
<div id="customDialog" class="customDialog" title="Upload or Insert Image">
<form id="imgadd" action="a_blogimgupload.cfm" method="post" enctype="multipart/form-data">
<input type="file" class="fileInput" name="blogimg" /> <input type="submit" id="submitImage" value="Upload" /></form>
<div class="preview">
<ul>
<li><img src="imgthumb.png" alt="" /><a href="javascript:;" title="Insert" onclick="addImage('imgfull.png');return false;">Insert</a></li>
</ul>
</div>