首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在jquery中将表单发送到服务器

在jquery中将表单发送到服务器
EN

Stack Overflow用户
提问于 2013-04-07 14:51:42
回答 3查看 1.2K关注 0票数 0

我正在学习ASP.NET MVC。在客户端(在jquery中)验证后,我必须向控制器端提交一个。如何做到这一点?我是否应该使用<form action="#" method="post">而不是<form action="Controller/Method" method="post">,并在提交按钮的单击事件中添加事件处理程序,以通过ajax等方式发送?我该怎么办?请帮帮忙

EN

回答 3

Stack Overflow用户

发布于 2013-04-07 14:54:28

你在正确的轨道上,你所建议的将会起作用。

一种更好的方法是保持原始操作不变,为旧浏览器提供向后兼容性。然后,您可以像往常一样创建事件处理程序,并包含阻止默认提交行为的代码,并使用ajax。

代码语言:javascript
运行
复制
$('#submitbutton').live('click', function(e){ e.preventDefault(); });
票数 2
EN

Stack Overflow用户

发布于 2013-04-07 14:56:12

执行此操作的最简单方法是使用jQuery forms plugin.

这是我对这类事情的首选插件。基本上,它将接受您现有的表单,动作url等,并自动将提交转换为ajax调用。来自网站:

AJAX表单插件允许您轻松而低调地升级

表单以使用AJAX。主要方法ajaxForm和ajaxSubmit从表单元素收集信息,以确定如何管理提交过程。这两种方法都支持许多选项,使您可以完全控制数据的提交方式。这是非常有用的网站托管在低成本的网站托管有限的特点和功能。用AJAX提交表单再简单不过了!

如果由于某种原因,禁用了javascript,那么它也会优雅地降级。看看这个网站,有一堆清晰的例子和演示。

票数 2
EN

Stack Overflow用户

发布于 2013-04-07 14:56:37

我是这样做的:

在jQuery中:

代码语言:javascript
运行
复制
$('document').ready(function() {
    $('input[name=submit]').click(function(e) {
        url = 'the link';
        var dataToBeSent = $("form#myForm").serialize();
        $.ajax({
            url : url,
            data : dataToBeSent,
            success : function(response) {
                alert('Success');
            },
            error : function(request, textStatus, errorThrown) {
                alert('Something bad happened');
            }
        });
        e.preventDefault();
    });

在另一个页面中,我获取变量并对其进行处理。我的表格是

代码语言:javascript
运行
复制
<form name = "myForm" method = "post">//AJAX does the calling part so action is not needed.
    <input type = "text" name = "fname"/>
    <input type= "submit" name = "submit"/>
<FORM>

在操作页面中有类似这样的内容

代码语言:javascript
运行
复制
name = Request.QueryString("fname")

更新:作为你在David的帖子中的评论之一,你不确定如何发送表单的值。尝试下面的函数,你会清楚地知道这段代码是如何工作的。serialize()方法做到了这一点。

代码语言:javascript
运行
复制
$('input[name=submit]').click(function(e){
    var dataToBeSent = $("form#myForm").serialize();
    alert(dataToBeSent);
    e.preventDefault();
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15859748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档