Сначала напишем плагин к jQuery для этого дела:

(function($) {
	// эта штука применяется к форме
	jQuery.fn.addHidden = function (name, value) {
		return this.each(function () {
			var input = {};
			if (Object.prototype.toString.call(value) === '[object Array]') {
				var r = /\[\]/;
				// превращаем массив в серию отдельных скрытых полей
				for (var i = 0; i < value.length; i++) {
					input = $("<input type="text" />").attr("type", "hidden")
										.attr("name", name.replace(r, '[' + i + ']'))
										.val(value[i]);
					$(this).append($(input));
				}
			} else {
				input = $("<input type="text" />").attr("type", "hidden")
									.attr("name", name)
									.val(value);
				$(this).append($(input));
			}
		});
	};
})(jQuery);

Использую я его, например, когда нужно добавить в отправляемую форму все значения помеченных чекбоксов, которые находятся вне этой формы. Для этого возьмем метод map.

$("input[type='submit']").click(function(){
	$("form").addHidden("selectedItems[]",$("input[name=\"selectedItems[]\"]:checked").map(function() {
		return $(this).val();
	}).get());
});
Наверх