__init__(value, options) {
		this.value = value;
		this.options = Object.assign({
			optional: true,
			password: false
		}, options);
	}
In addition to the [AbstractElement.InitOptions]{@link LuCI.ui.AbstractElement.InitOptions}
the following properties are recognized:

@typedef {LuCI.ui.AbstractElement.InitOptions} InitOptions
@memberof LuCI.ui.Textfield

@property {boolean} [password=false]
Specifies whether the input should be rendered as concealed password field.

@property {boolean} [readonly=false]
Specifies whether the input widget should be rendered readonly.

@property {number} [maxlength]
Specifies the HTML `maxlength` attribute to set on the corresponding
`<input>` element. Note that this a legacy property that exists for
compatibility reasons. It is usually better to `maxlength(N)` validation
expression.

@property {string} [placeholder]
Specifies the HTML `placeholder` attribute which is displayed when the
corresponding `<input>` element is empty.