我使用serialize函数来获取表单的所有值。 我的问题是如何只提取序列化函数生成的 url 字符串中的值并将其拆分为数组。
var input = $('#addForm').serialize();
deviceBrand=itemBrand&deviceModel=itemModel&deviceSerial=itemSerial&deviceType=Desktop&deviceStatus=Available&deviceDesc=item+description //generated url string
我需要字符串函数来提取每个string between "=" and "&"
并将每个String放入一个数组中。
答案 0 :(得分:0)
尝试使用此代码反序列化字符串
(function($){
$.unserialize = function(serializedString){
var str = decodeURI(serializedString);
var pairs = str.split('&');
var obj = {}, p, idx, val;
for (var i=0, n=pairs.length; i < n; i++) {
p = pairs[i].split('=');
idx = p[0];
if (idx.indexOf("[]") == (idx.length - 2)) {
// Eh um vetor
var ind = idx.substring(0, idx.length-2)
if (obj[ind] === undefined) {
obj[ind] = [];
}
obj[ind].push(p[1]);
}
else {
obj[idx] = p[1];
}
}
return obj;
};
})(jQuery);
答案 1 :(得分:0)
请勿使用{name: "xxx", value: "yyy" }
,请使用serializeArray
。它创建了一个var input = $("#addForm").serializeArray();
var values = input.map(x => x.value);
形式的对象数组,您可以更轻松地处理它们。
name: value
您还可以创建一个包含所有var object = {};
input.map(x => object[x.name] = x.value);
属性的对象:
sonar-scanner -Dproject.settings=sonar-project-abc.properties