0

这越来越棘手,我无法在 Dailog 框点击中发布到我的表单。对话框一旦打开就在表单外发布,因此在对话框内单击按钮不会将表单提交到服务器。我尝试将对话框附加回表单,但表单会自动发布。当用户单击对话框上的任一按钮时,我只需要发布到表单。提前感谢您的帮助

主视图

@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="test();return false;"
    style="width: 100px">
    Upload</button>


 function test() {
        var UploadDialog;

        UploadDialog = $("#uploadConfirmation").dialog({
            title: "Yes or No",
            resizable: false,
            modal: false,
            buttons: {
                "Yes": function () {
                    $(this).dialog("close");
                    $("#hiddenInput").val("Normal");
                    $("#form").submit();
                },
                "No": function () {
                    $(this).dialog("close");
                    $("#hiddenInput").val("Buffer");
                }
            }
        });

        //        UploadDialog.closest("div.ui-dialog").appendTo("#form");
    }
4

1 回答 1

0

无需考虑从对话框和原始表单中发布数据,只需使用那里的表单值来填充原始表单上的值,关闭对话框,然后通过“是”按钮操作通过帖子发布原始表单。

如果您有很多值要处理,您可以简单地序列化对话框中的字段,然后使用 each 将它们发布回您的原始表单。如果您不希望用户在原始表单中看到您在对话框中的值,请将它们作为隐藏字段包含在内,或者简单地使用对话框和帖子中表单中的序列化值。

或者,您也可以在对话框上设置与原始表单不同的表单,然后提交两个序列化值以处理表单。这实际上可能是涉及最少的方法。

您可能需要考虑的一件事是,使用对话框来中断填写表单的体验并不被认为是一种很好的用户模式。将对话视为进程的关键中断,理想情况下,仅当您出于特定原因(例如警告)必须停止用户时才使用该对话。简单地让他们通过对话框添加更多信息可以通过可扩展区域以更简单的方式完成,例如使用显示/隐藏。

于 2013-04-04T21:24:37.233 回答