FormData で送信される jquery フォームがあります (フォームデータが利用できない場合は iframe を使用します) が、フォームが送信されると別のフォームが生成されます。このフォームは jquery 関数を使用して送信するため、jquery 関数はフォームにバインドされていないように見えるため、代わりに event.stopDefault(); を使用します。デフォルト、つまりtest.phpに送信します
別の言葉で私の質問は次のとおりです。フォームが ajax によってロードされたときに、jquery 関数を新しいフォームにリロード/バインドする方法/方法はありますか?
コード例:
私が試したjsコード:
$(document).on('#resize', submit, function(e) {
e.preventDefault();
e.stopPropagation();
if(window.FormData === undefined){
alert("Form Data not supported");
}
else{
var iframe = $('<iframe name="resizeiframe" id="resizeiframe" style="display: none" />');
$("body").append(iframe);
var form = $('#resize');
form.attr("action", "resizer.php");
form.attr("method", "post");
form.attr("enctype", "multipart/form-data");
form.attr("encoding", "multipart/form-data");
form.attr("target", "postiframe");
form.attr("file", $('#resizeimage').val());
form.submit();
$("#resizeiframe").load(function () {
iframeContents = $("#resizeiframe")[0].contentWindow.document.body.innerHTML;
$("#textarea").html(iframeContents);
$("#resizeiframe").remove();
$(document).find('#resizeiframe').remove();
});
}
});
ajax によって生成された後に送信されたが、関係なく送信されたフォーム:
<form id="resize" action="resizer.php" method="post" onsubmit="return checkCoords();">
<input type="hidden" id="x" name="x" />
<input type="hidden" id="y" name="y" />
<input type="hidden" id="w" name="w" />
<input type="hidden" id="h" name="h" />
<input type="hidden" id="resizeimage" name="image" value="'.$new_name.'"/>
<input type="submit" value="Crop Image" class="btn btn-large btn-inverse" />
</form>
ps onsubmit を削除しようとしましたが、違いはありません。