Class: form

LuCI. form

The LuCI form class provides high level abstractions for creating UCI- or JSON backed configurations forms.

To import the class in views, use 'require form', to import it in external JavaScript, use L.require("form").then(...).

A typical form is created by first constructing a LuCI.form.Map or LuCI.form.JSONMap instance using new and by subsequently adding sections and options to it. Finally render() is invoked on the instance to assemble the HTML markup and insert it into the DOM.

Example:

'use strict';
'require form';

let m, s, o;

m = new form.Map('example', 'Example form',
	'This is an example form mapping the contents of /etc/config/example');

s = m.section(form.NamedSection, 'first_section', 'example', 'The first section',
	'This sections maps "config example first_section" of /etc/config/example');

o = s.option(form.Flag, 'some_bool', 'A checkbox option');

o = s.option(form.ListValue, 'some_choice', 'A select element');
o.value('choice1', 'The first choice');
o.value('choice2', 'The second choice');

m.render().then((node) => {
	document.body.appendChild(node);
});