【问题标题】:Form confirmation with Razor, Url.Action使用 Razor、Url.Action 进行表单确认
【发布时间】:2014-04-25 15:57:53
【问题描述】:

我可以找到许多不同的方法来向表单提交添加确认。就我而言,问题是他们还是提交了表格,或者他们只是坐在那里不做任何事情。任何建议,将不胜感激。我已将事件添加到表单 onsubmit 和按钮 onclick,没有骰子。本例中的 ActionResult 使用 HttpPostRequest 发送表单数据。效果很好,只是想添加一个有效的确认对话框。

<script>

function SubmitConfirm(){
    if (confirm("Are you sure want to submit this form?"))
        return true;
    else
        return false;     
}

  <form name="Form1" method="post" action="@Url.Action("PostForm", "MyController")"  id="Form1">
...

<input type="submit" value="Submit Posting" onclick="SubmitConfirm()" />

【问题讨论】:

    标签: c# jquery asp.net-mvc forms razor


    【解决方案1】:

    您可能希望在提交成功时显示该对话框而不重新加载页面,而不是将它们带到新页面或实施某种条件刷新。所以你可以这样设置你的表单......

    <form name="Form1" id="Form1">
        ...
         <input type="button" id="submit" value="Submit Posting" />
    </form>
    

    然后使用 jQuery 设置您的实际提交方式...

    $(document).ready(function () {
        $('#submit').click(function() { submit(); });
    });
    
    function submit() {
        if (SubmitConfirm())
        {
            var data = $('#Form1').serialize();
    
            $.post('MyController/PostForm', data, function(result) {
                 if (result === 'success') {
                     // just using an alert here as a placeholder
                     alert('Your submission has been received!');
                 }
            });
        }
    }
    

    这意味着在您的控制器中,您将拥有以下内容...

    [HttpPost]
    public ActionResult PostForm([form arguments])
    {
        var success = // deal with form results, return true if everything is ok
    
        return new Content(success ? "success" : "failure");
    }
    

    总而言之,您需要提交表单数据并对其进行处理,然后在用户离开页面的情况下向用户提供有关其是否已成功处理的反馈,这也为更容易重新打开了大门- 如有必要,提交数据并再次进行验证,无需用户离开页面或等待页面重新加载。

    编辑:修正错字并修改提交逻辑。

    【讨论】:

    • 感谢您的回复。有一个小错字 (SubmitConfirm()),但在“$('#Form1')”的左括号下还有一条“死亡红线”。说“预期:”。不知道如何解决。
    • @user116923,好的,更新了答案。有关如何序列化您的内容的示例,请参阅 jsfiddle.net/D2bA6 并确保您的所有字段都有 name 属性。基本上,大括号是不必要的,只是为了避免 onclicksubmit 出现问题,我让你将提交按钮附加到 jQuery 侦听器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    相关资源
    最近更新 更多