我有一些带有
等输入的动态表单<input type="text" name="admins[0]['email']">
<input type="text" name="admins[1]['email']">
<input type="text" name="admins[2]['email']">
等等。当我在其上.serializeArray();
时,它们被视为分开的不同名称。我希望输出
admins
|
-->0
| \-->email => value
-->1
| \-->email => value
-->2
\-->email => value
所以“管理员”将是单一阵列。可能吗? (我用ajax发送数据)
答案 0 :(得分:1)
简单方法
var serializedArray = {};
$( "input, textarea" ).each( function( i, el ){
var $field = $( this )
, rawName = $field.attr( "name" )
, matches = rawName.match( /^(.+?)\[\d+\]\['(.+)'\]$/ )
, key
, subKey
, value = $field.val()
, subValue = {]}
;
if( matches ){
if( !( key in serializedArray ) ){
serializedArray[key] = [];
}
subValue[subKey] = value;
serializedArray[key].push(subValue);
} else {
serializedArray[rawName] = value;
}
});
答案 1 :(得分:0)