没有名字的jQuery序列化?
使用.serialize(),我只想要一个值的数组而不是名称值对。
例如,返回此:
单,多和Multiple3&CHECK2和收音机1
代替:
单=单&多个=多&多个= Multiple3&检查= CHECK2&无线电=收音机1
这有点打败序列化的目的,但你可以建立自己的:
var serializeValues = function(obj) { var result = []; for(x in obj) result.push(obj[x]); return result.join('&'); }
你可以制作自己的插件来做到这一点:
jQuery.fn.mySerialize = function() { var returning = ''; $('input, select, textarea', this).each(function() { if (this.value !== "") // check this to avoid && in returning string returning += '&' + this.value; }); return returning.substring(1); };
你可以像这样使用它:
var serialize = $("form#fID").mySerialize(); alert(serialize);
演示: http : //jsfiddle.net/maniator/n2tca/
您可以使用.map
将适当的input
(在此示例中,所有input
s, select
s,非按钮的textarea
)转换为其值的数组,然后使用join
:
$("#my_form").submit(function (e) { var serialized = $(":input:not(:button, :submit)", this).map(function(i, el) { return el.value; }).get().join("&"); alert(serialized); });
示例: http : //jsfiddle.net/andrewwhitaker/zQ4P2/1/
var value = $("form").serialize(); var newValue = value.replace(/&[^=]+/g, "").replace(/=/g, "/");
String.replace: http : //www.w3schools.com/jsref/jsref_replace.asp
JS Regex: http : //www.w3schools.com/jsref/jsref_obj_regexp.asp