如何使用jQuery Ajax获取表单数据

时间:2014-12-11 17:08:06

标签: jquery ajax asp.net-mvc forms

专家,

在MVC项目中,我们有一个用Jquery Windows.open()打开的表单 -

window.open(url, '_blank', 'width=700,height=700,left=' + left + ',top=' + top);

网址定义为 -

var url = configMap.sitePath + 'supply-chain-pressure/EmailRequest';                                                    // localhost/controller/method

url += '?id=' + escape(params.id) + '&weakness=' + escape(params.weakness) + '&&percent=' + escape(params.percent);

表单就像 -

一样
<form name="emailrequest" id="emailrequest" method="get">
.. diffrent elements
</form>

上面的表单有一个不同的文本框,点击提交按钮我们想获得所有的

文本框和上面提到的url。我正在使用Jquery ajex Get()(点击提交按钮),但我得到的是标记和HTML -

$.ajax({
type: "GET",
url: sitePath + 'supply-chain-pressure/EmailRequest',
data: $('#emailrequest').value,
success: function(data) {
alert(data);
}

});//End Ajax

整体要求是将数据发送到另一个控制器方法,但在此之前我需要上述数据。请帮助我如何获取数据?

3 个答案:

答案 0 :(得分:1)

当您打开窗口时保存对变量的引用,确保该变量在$.ajax()函数的范围内:

var childWindow = window.open(url, '_blank', 'width=700,height=700,left=' + left + ',top=' + top);

然后你可以在jQuery选择器中使用这个引用:

$.ajax({
    type: "GET",
    url: sitePath + 'supply-chain-pressure/EmailRequest',
    data: $('#emailrequest', childWindow.document).serialize(),
    success: function(data) {
            alert(data);
    }
});

答案 1 :(得分:0)

看看这个插件。它可以帮助您像尝试一样发布表单(仅提供表单而不是每个输入)。

http://jquery.malsup.com/form/

答案 2 :(得分:0)

如果您想从表单中获取所有数据,请使用serialize()

data: $('#emailrequest').serialize(),