JSON不停止形式模态窗口提交(JSON not stopping form submit on m

2019-11-03 08:59发布

我有一个MVC项目。 我在一个模态对话框打开表单。 用户填写表单和点击保存。 表单发送到控制器但是我试图拦截,并通过JSON发布。

展望开发工具网络部分以及具有警报()在我的JSON它没有运行,我认为它没有正确安装? 我看了几页,似乎我的JSON是基本正确。

我知道有父页面和窗口...这是成为模态窗口一个div之间的关系。 但是我不知道够不够,以确定这是否是破的一部分了。

在这里父窗口是我的模式是如何启动。

$("#edit").click(function (e)
    {
        e.preventDefault();

        var detailsWindow = $("#window").data("kendoWindow");

        if (!detailsWindow)
        {
            // create a new window, if there is none on the page
            detailsWindow = $("#window")
                // set its content to 'loading...' until the partial is loaded
                .html("Loading...")
                .kendoWindow(
                    {
                        modal: true,
                        width: "800px",
                        height: "400px",
                        title: "@T("....")",
                        actions: ["Close"],
                        content:
                            {
                                url: "@Html.Raw(Url.Action("...", "..."))",
                                data: { ... }
                            }
                    }).data('kendoWindow').center();
        }

        detailsWindow.open();

        });

上面的代码击中控制器并填充那么模型加载部分在中心模态如预期。

在模式部分我有这样的:

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "formCreateEdit" }))
{ 
   ...HTML ELEMENTS...
   <input type="submit" name="save" id="save" value="@T("...")" />
}

<script>
   $(function()
   {
     $("#formCreateEdit").submit
        (function (e)
        {
            alert(e);
            e.preventDefault(); //As we will manually submit the form
            $.ajax(
            {
                type: "POST",
                url: "@Html.Raw(Url.Action("...", "..."))",
                data: $(this).serialize(),
                success: function (data)
                {
                    //here we check if database called resulted in Success/Failure
                    if (data.Result === "Success")
                    {
                        alert('Finis');
                    }
                    else
                    {
                        //Show error message or whatever.
                    }
                }
            })
            //});
        });

</script>

编辑:

我也试图拦截按钮点击事件。 我可以veru也已经做错了它所以这里的代码时,我试过了:

$('#save').click(function(event)
{
    event.preventDefault();
    // take over and perform ajax post

    alert('ddd');

    $.ajax(
    {
        type: "POST",
        url: "@Html.Raw(Url.Action("...", "..."))",
        data: $(this).serialize(),
        success: function (data)
        {
            //here we check if database called resulted in Success/Failure
            if (data.Result === "Success")
            {
                alert('Finis');
            }
            else
            {
                //Show error message or whatever.
            }
        }
    })

});

Answer 1:

拦截提交按钮的点击,而不是形式。

$('#save').click(function(event){
   event.preventDefault();
   // take over and perform ajax post
})


Answer 2:

因此,它结束了更加复杂,因为模态从视图穿过控制器之后加载...因此它被认为是动态生成的。 因此,解决办法是附加的事件处理程序文件后一代在这里看到。 我已经连接到这两个信息,这样谁分享了他们的知识,我的SO会员均可获得upvotes如果它有利于你。

第一篇文章

第二个职位



文章来源: JSON not stopping form submit on modal window