随意使用 jQuery 我的功能:
$.fn.addHiddenInputData = function(data) {
var keys = {};
var addData = function(data, prefix) {
for(var key in data) {
var value = data[key];
if(!prefix) {
var nprefix = key;
}else{
var nprefix = prefix + '['+key+']';
}
if(typeof(value) == 'object') {
addData(value, nprefix);
continue;
}
keys[nprefix] = value;
}
}
addData(data);
var $form = $(this);
for(var k in keys) {
$form.addHiddenInput(k, keys[k]);
}
}
$.fn.addHiddenInput = function(key, value) {
var $input = $('<input type="hidden" name="'+key+'" />')
$input.val(value);
$(this).append($input);
}
用法:
// click event is fired before submit event
$('#form input[type="submit"]').click(function(){
// add some JSON data before submit
$('#form').addHiddenInputData({
'foo': 123,
'bar': 456,
'foo2': {
'bar': 123
}
});
});
不需要使用ajax。