如何通过$ .ajax(serialize()+额外数据)添加数据

Jok*_*iro 63 jquery

我想在使用$('#myForm').serialize()+额外数据后添加额外的数据

$.ajax({
   type: 'POST',
   url: $('#myForm').attr('action'),
   data: $('#myForm').serialize(),   // I WANT TO ADD EXTRA DATA + SERIALIZE DATA
   success: function(data){
      alert(data);
      $('.tampil_vr').text(data);
   }
});
Run Code Online (Sandbox Code Playgroud)

jth*_*son 148

什么样的数据?

data: $('#myForm').serialize() + "&moredata=" + morevalue
Run Code Online (Sandbox Code Playgroud)

"data"参数只是一个URL编码的字符串.你可以随意添加它.请在此处查看API .

  • 如果要添加单个数据元素,可以考虑使用`... serialize()+'和'+ $ .param(myParametersObject)`其中myParametersObject是一个简单的对象,如`{'param':'val' , '参数2': '值2',...}` (5认同)

ste*_*web 8

就个人而言,我会将元素附加到表单而不是黑客序列化数据,例如

moredata = 'your custom data here';

// do what you like with the input
$input = $('<input type="text" name="moredata"/>').val(morevalue);

// append to the form
$('#myForm').append($input);

// then..
data: $('#myForm').serialize()
Run Code Online (Sandbox Code Playgroud)

这样,你不必担心?&

  • 然后我建议使用`.serializeArray()`并将数据附加到数组中.它将以相同的方式发布.请参阅http://stackoverflow.com/questions/14102732/can-i-add-data-to-an-already-serialized-array (3认同)
  • 我同意。我只是不想将项目附加到序列化的字符串中,我宁愿让 jQuery 来做这些艰苦的工作。 (2认同)