专家,
在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
整体要求是将数据发送到另一个控制器方法,但在此之前我需要上述数据。请帮助我如何获取数据?
答案 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)
看看这个插件。它可以帮助您像尝试一样发布表单(仅提供表单而不是每个输入)。
答案 2 :(得分:0)
如果您想从表单中获取所有数据,请使用serialize()
data: $('#emailrequest').serialize(),