【问题标题】:How to use jQuery Ajax to get form data如何使用 jQuery Ajax 获取表单数据
【发布时间】:2014-12-11 17:08:06
【问题描述】:

专家,

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

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

url定义为-

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>

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

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

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

});//End Ajax

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

【问题讨论】:

  • var data = $( 'form' ).serialize();

标签: jquery ajax asp.net-mvc forms


【解决方案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);
    }
});

【讨论】:

  • 嗨,不会用 ajax 中的 url 覆盖 url 吗?或者我应该问那个 url 怎么样,在子窗口中与 ajax 中的 url 不同
【解决方案2】:

看看这个插件。它将帮助您像您尝试做的那样发布表单(仅引用表单而不是每个输入)。

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多