У меня есть частичный вид, содержащий файл для загрузки файлов (ов). Пользователь в этом представлении выберет файл со своей рабочей станции и нажмите кнопку «Загрузить». Щелчок по загрузке отправляет форму методу действия, и файлы анализируются, и один и тот же вид возвращается для автоматического заполнения нескольких полей в представлении.Подтверждение 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