JavaScript: serializzare un form come una stringa JSON

In JavaScript รจ possibile serializzare i valori di un form in molti modi. Di seguito vedremo come serializzare tali valori come una stringa JSON.

Gli elementi che ci interessano sono quelli provvisti di un attributo name. Ecco la soluzione:


(function() {
	function toJSONString( form ) {
		var obj = {};
		var elements = form.querySelectorAll( "input, select, textarea" );
		for( var i = 0; i < elements.length; ++i ) {
			var element = elements[i];
			var name = element.name;
			var value = element.value;

			if( name ) {
				obj[ name ] = value;
			}
		}

		return JSON.stringify( obj );
	}

	document.addEventListener( "DOMContentLoaded", function() {
		var form = document.getElementById( "test" );
		var output = document.getElementById( "output" );
		form.addEventListener( "submit", function( e ) {
			e.preventDefault();
			var json = toJSONString( this );
			output.innerHTML = json;

		}, false);

	});

})();

Torna su