我有一個部分視圖,其中包含用於上傳文件的文件輸入。此視圖上的用戶將從他們的工作站中選擇一個文件並單擊上傳按鈕。上傳單擊將表單提交給一個操作方法,並對文件進行解析並返回相同的視圖以自動填充視圖上的幾個字段。JavaScript確認自動發佈表格
所有東西都是完美的。我加入到現有的視圖,其是如下新的要求:
要求
用戶選擇文件並點擊上傳按鈕。點擊上傳按鈕後,向用戶顯示一個JavaScript確認對話框,其中包含兩個按鈕選項,然後將表單提交給控制器操作方法。這些按鈕是「緩衝區運行解析」和「正常解析」。單擊這些按鈕中的任何一個將會發布到控制器操作方法。
在控制器動作方法後,我的目標是捕獲他們按下哪個按鈕,並基於按下按鈕我相應地選擇文件解析邏輯。
的問題
我創建一個JavaScript函數確實顯示兩個按鈕,但該對話框自動消失和形式職位到控制器。我希望它不會發布,直到我用確認單擊任一按鈕。
下面是我在做什麼:
主視圖:
@using (Html.BeginForm("Create", "RunLogEntry", FormMethod.Post, new { id = "form", enctype = "multipart/form-data"}))
{
<div id="main">
@Html.Partial("_RunLogEntryPartialView", Model)
</div>
}
管窺:
<button name="submit" class="art-button" type="submit" value="Upload" onclick="initUploadDailog();return false;"
style="width: 100px">
Upload</button>
<div id="uploadConfirmation" style="font-size: 10px; font-weight: normal; overflow: scroll;
width: 800px; height: 450px; display: none;">
</div>
JS功能:
function initUploadDailog(e) {
currentForm = $(this).closest('form');
UploadDialog = $("#uploadConfirmation").dialog({
modal: true,
width: 400,
autoOpen: true,
title: 'Please select parsing type for Test Completed Computation',
buttons: {
"Normal Parsing": function() {
$("#hiddenInput").val("Normal");
alert(currentForm.innerHtml());
currentForm.submit();
},
"Buffer Parsing": function() {
$("#hiddenInput").val("Buffer Run");
currentForm.submit();
}
}
});
}
控制器:
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(RunLogEntry runLogEntry, String ServiceRequest, string Hour, string Minute, string AMPM,
string submit, IEnumerable<HttpPostedFileBase> file, String AssayPerformanceIssues1, List<string> Replicates)
{
}
你可以試試更換$(「#hiddenInput」).val(「Normal」);與$(「#hiddenInput」)。attr(「value」,「Normal」)。我知道兩者都是一樣的,但最近我遇到了這種情況,我不得不做出這樣的改變。 – PRP