ファイルのアップロードを許可するために、jTable-create/edit ポップアップ内にフォームと iframe の組み合わせを作成しました。
$('#someContainer').jtable({
...
FileUploadDownload: {
input: function (data) {
if (typeof data.record == 'undefined' || !data.record.IsFileLoaded) {
return '<form target="iframeTarget" class="formUploadFile" action="PostFile" method="post" enctype="multipart/form-data"> <input type="file" onchange="hideButtons(); this.form.submit()" name="myFile"/> </form> <iframe class="upload-iframe" style="display: none;" src="#" name="iframeTarget"></iframe>';
}
else {
return '<a href="DownloadFile?id=' + data.record.Codigo + '">Download</a> <a onclick="ReWriteInputControl(' + data.record.Codigo + ', $(this))">Remove File</a>'
}
}
}
}
私のサーバーコード:
[HttpPost]
public JsonResult PostFile(HttpPostedFileBase myFile)
{
if (myFile != null && myFile.ContentLength > 0)
{
...
}
return Json(true);
}
すべてが機能します。
ここで、ポップアップの一部のコントロールを再度有効にするための応答をキャプチャしたいと考えています。
#jtable-edit-form is the id of a parent div of the popup created by jTable
.formUploadFile is a class of the form.
私はこれをやろうとしましたが、うまくいきません:
$("#jtable-edit-form").on("submit", ".formUploadFile", null, function (event) {
alert("Catch the submit");
//re-enable some inputs, etc
});