【问题标题】:Postback form after validation in MVC在 MVC 中验证后的回发表单
【发布时间】:2015-02-18 18:09:22
【问题描述】:

我有一个弹出表单,它有一个文本框,我通过 jQuery 使用 AJAX 帖子将表单提交到服务器。我对弹出窗口使用强类型的局部视图,但是当我将文本框保持为空白并单击提交按钮时,它会显示成功的验证并将表单发布到服务器。

这是我的 ajax 代码:

$(document).ready(function () {

    //if($("#frmScenaria").valid()==true)

    //code to save detail
    $('#frmPost').submit(function (e) {
        var serializedForm = $('#frmPost').serialize();

            $.ajax({
                url: '@Url.Action("Save","Scenario")',
                type: "POST",
                dataType: "json",
                data: serializedForm,
                success: function (result) {
                    if (result.Success==true)
                    {
                        location.reload();
                    }
                },
                error: function(xhr, status, error) {

                    //alert(error.Message);
                }

            });

        return false;
    });
        //code to save detail end

});

谁能帮我解决这个问题?

【问题讨论】:

  • 在客户端或视图的视图模型中有两个地方进行验证(任您选择)。您当前的验证在哪里进行?
  • 你需要给你看 ajax 代码。
  • 我用过模型验证

标签: jquery asp.net-mvc asp.net-mvc-3


【解决方案1】:

改用客户端验证。如下所示:[假设textbox1 是您的文本框的名称]

$('#frmPost').submit(function (e) {
        if($('#frmPost').textbox1.value == "") {
           alert('Please enter a value');
           $('#frmPost').textbox1.focus();
           return false;
        }
        var serializedForm = $('#frmPost').serialize();

            $.ajax({
                url: '@Url.Action("Save","Scenario")',
                type: "POST",
                dataType: "json",
                data: serializedForm,
                success: function (result) {
                    if (result.Success==true)
                    {
                        location.reload();
                    }
                },
                error: function(xhr, status, error) {

                    //alert(error.Message);
                }

            });

        return false;
    });

希望这对你有用,谢谢。

【讨论】:

  • 感谢您的回复,实际上它会显示验证消息,但它也会使用 ajax 发布表单,有什么办法可以防止
【解决方案2】:

请像下面这样使用 注意:在这里我在发布之前检查了来自 vqalidation。

$('#frmPost').click(function (e) {
    if($("#frmPost").validate())
    {
          var serializedForm = $('#frmPost').serialize();

            $.ajax({
                url: '@Url.Action("Save","Scenario")',
                type: "POST",
                dataType: "json",
                data: serializedForm,
                success: function (result) {
                    if (result.Success==true)
                    {
                        location.reload();
                    }
                },
                error: function(xhr, status, error) {

                    //alert(error.Message);
                }

            });

        return false;
    }
});

【讨论】:

    猜你喜欢
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2011-04-21
    相关资源
    最近更新 更多