jquery - 将 jquery.submit 转换为 ajax 提交

标签 jquery asp.net-mvc ajax

我似乎不知道如何使用 Ajax 从 jquery ui 按钮功能提交表单。

这是我通过传统方式提交表单的脚本

        $('#contact-form').dialog({
            modal: true,
            autoOpen: false,
            buttons: {
                Cancel: function () {
                    $(this).dialog('close');
                },
                Ok: function () {
                    $('form#contactUs').submit();
                    $(this).dialog('destroy');
                }
            }
        });

        $('#contact-us').click(function () {
            $('#contact-form').dialog('open');
            return false;
        });
    });

这是我的表格

<div id="contact-form" class="hidden" title="Online Request Form">
    <form action="/Main/Contact/contactUs" method="post">            
        <div>
            <label for="Name">Name</label><br />
            <input name="Name" /><br />
            <label for="PhoneNumber">Phone Number</label><br />
            <input name="PhoneNumber" /><br />
            <label for="EmailAddress">Email Address</label><br />
            <input name="EmailAddress" /><br />
            <label for="Question">Question or Comment</label><br />
            <textarea name="Question"></textarea><br />
            <label for="Security">What color is an orange?</label><br />
            <input name="Security" />
            <noscript>
                <input type="submit" name="submit" value="Ok" />
            </noscript>
        </div>
    </form>    
</div>

如何更改此设置以通过 Ajax 提交链接,以便显示成功消息?

最佳答案

这可能就足够了:

$("#contact-form form").submit(function(e) {
    e.preventDefault();
    $.post( $(this).attr('action'), $(this).serialize(), 
                function(resp) {
                    if(resp == "success") {
                        alert('Submission was successful');
                    } else {
                        // something else
                    }
                }
    });              
});

简要说明:

  • 将 onsubmit 事件处理程序绑定(bind)到联系表单。阻止“正常”提交。
  • 序列化表单,并将结果发送到表单的操作。
  • 评估响应,并以某种方式显示一条消息。

进一步阅读:

关于jquery - 将 jquery.submit 转换为 ajax 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476215/

相关文章:

asp.net-mvc - 使用 NLog 记录未处理的异常? ELMAH 和 NLog 应该一起使用吗?

javascript - 如何将 JavaScript 变量的数据传递到另一个 php 页面?

javascript - 为什么浏览器限制跨域AJAX请求而不限制跨域嵌入文件/脚本?

jquery 表单发布了两次

jquery - jeditable(内联编辑器)不适用于动态生成的元素

javascript - 在 slideToggle 如何自动滚动到带有类的 li

javascript - 为什么不返回任何元素?

c# - ASP.NET MVC Identity Framework 卡在开发中的 FindByEmail 调用上,但不是实时版本

javascript - 将变量 id 传递到 Modal

asp.net-mvc - 使用 MVC 和 OAuthWebSecurity 登录 Twitter