I am using serialize() in an ajax() call. However, I only want to send some fields – more specifically, I don’t want to send the content field – as this contains a lot of verbose text – and is not needed.
I tried using $(‘#elem_id’).serialize()
but that returned an empty array (yes ‘elem_id’ is the id of an element in the DOM and it does exist).
Instead, I am using $(‘#form_id’).serialize(), which works but generates a ton of rubbish which I do not need..
Here is a sample string that is generated when I use serialize on the entire form:
rating%5Bvote_value%5D=3&blog_post%5Bcontent%5D=a-really-really-long-piece-of-text&blog_post%5Bid%5D=1
I want to implement a hack, to extract the string ‘blog_post%5Bcontent%5D=a-really-really-long-piece-of-text’ from the string obtained from the .serialize() method, so that I don’t eat up all my bandwidth.
Can anyone help with a JS function that will rip out ‘blog_post%5Bcontent%5D=a-really-really-long-piece-of-text’ and splice the string back together so that I can send the shortened string to the server?
Here is my attempt:
function delete_content_param(long_str){
var pos1 = str.indexOf("&blog_post%5Bcontent%5D=");
alert('pos1:'+ pos1);
var pos2 = str.indexOf("&",pos1);
alert('pos2:'+ pos2);
}
This did not yield the result I expected (i.e. index numbers), I thought I’d better come in here and ask the javascript Gurus, before wasting (yet another) entire afternoon
You can filter out fields you wish to not serialize by using .not()
jsfiddle example.