Javascript 序列化表单数据并将其添加到jquery$.post
它工作正常,但因为Javascript 序列化表单数据并将其添加到jquery$.post,javascript,jquery,Javascript,Jquery,它工作正常,但因为inpuname、inpass、selcanpublic、txtabout都是表单的元素(forma),我想知道是否可以序列化该数据并将其添加到$。post数据 大概是这样的: $('#btnsave').click(function() { var id = $('.nameact').attr('data-id'); var img = $('#imguser').attr('src'); var uname = $('#inpuname').val
inpuname、inpass、selcanpublic、txtabout
都是表单的元素(forma
),我想知道是否可以序列化该数据并将其添加到$。post
数据
大概是这样的:
$('#btnsave').click(function() {
var id = $('.nameact').attr('data-id');
var img = $('#imguser').attr('src');
var uname = $('#inpuname').val();
var pass = $('#inpass').val();
var canpublic = $('#selcanpublic').val();
var about = $('#txtabout').val();
$.post('btn-save.php', {id, img, uname, pass, canpublic, about}, function(data) {
console.log(data);
});
});
$('form')。serialize()
生成一个包含值的查询字符串。因此,当您序列化表单时,它会将值作为url参数发送
它将产生
$('#btnsave').click(function() {
var id = $('.nameact').attr('data-id');
var img = $('#imguser').attr('src');
$.post('btn-save.php', {id, img, $('#forma').serialize()}, function(data) {
console.log(data);
});
});
所以有一种方法你可以发送
http://example.com?id=value&img=value&uname=value&pass=value&canpublic=value&about=value
或者你也可以自己去形成。它将创建键值
对表单元素
var formData = $('#forma').serialize()+'&id='+idvalue +'&img='+imgValue;
$.post('btn-save.php', formData, function(data) {
console.log(data);
});
您可以使用对象。它存储表单值
编辑您只能与选项一起使用processData:false,
var formData = $('#myForm').serializeArray();
formData.push({name: 'id', value: idValue});
formData.push({name: 'img', value: imgValue});
您的第二个示例根本无效<代码>序列化()生成查询字符串。虽然可以将其附加到通过jQuery发送的对象中,但需要对服务器端代码进行大量修改,而这并不是您真正想要做的。我猜您需要类似的东西,在序列化字符串中附加其他参数。IE9或更低版本不支持FormData对象。我假设这不是OP的问题。有点不对劲-我得到了
意外的令牌
errorthreaded-$.post('btn-save.php',{id,img,formData},函数(数据){…
-获取-未捕获的类型错误:对此进行非法调用line@puerto,是的,我的回答不好。编辑过的回答。@KrzysztofJaniszewski,在这种情况下,没有代码行减少效果-太遗憾了
$('#btnsave').click(function () {
var formData = new FormData($('#forma'));
$.ajax({
url: 'btn-save.php',
data: formData,
type: "POST",
processData: false,
success: function(data) {
console.log(data);
}
});
});