我可以成功序列化表单并将其提交到表单中的文本区域,但不知道如何将其发送到我已经创建/定义的Servlet:
// Prepare form for Serialize
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
// Send JSON Data to ResultSet
$(function() {
$('form').submit(function() {
//submitting to textarea "resultset"
//needs to submit to servlet "SftpConnTest" as defined in web.xml
//$('#ResultSet').text(JSON.stringify($('form').serializeObject()));
//?? HOW DO I SEND TO "SftpConnTest" SERVLET instead??
return false;
});
});
答案 0 :(得分:0)
假设您使用HTTP POST将其发送到servlet,您可以使用ajax:
$(function() {
$('form').submit(function(evt) {
evt.preventDefault(); // prevent the default form submit behavior
var data = $('form').serializeObject();
$.post(
'/',
data,
function(resData, status, req) {
$('#ResultSet').text(JSON.stringify(resData));
}
);
}
}
如果未将servlet映射到位于Web应用程序的根目录,请将'SftpConnTest'
函数中的$.post
替换为servlet的相对路径。例如,如果servlet映射到/foo/bar/SftpConnTest
,那么您应该'/foo/bar/SftpConnTest'
而不是'SftpConnTest'
。
有关$.post
功能的详细信息,请参阅jQuery docs。
答案 1 :(得分:0)
使用以下命令通过ajax将表单数据发送到服务器:
$.post("path/to/servlet", $("#formId").serializeArray(), function (result) {
// do something
});
顺便说一下:
serializeArray()
会将表单转换为数组,该数组可以直接用作jquery ajax请求的“data”参数,只包含表单中具有name
属性的元素进入数据,详情请查看jquery api,这里很清楚。