128 lines
4.4 KiB
JavaScript
128 lines
4.4 KiB
JavaScript
var formElements = {
|
|
form: {
|
|
acceptCharset: {type: "string", domAttrName: "accept-charset"},
|
|
// "action" has magic hard-coded in reflection.js
|
|
action: "url",
|
|
autocomplete: {type: "enum", keywords: ["on", "off"], defaultVal: "on"},
|
|
enctype: {type: "enum", keywords: ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"], defaultVal: "application/x-www-form-urlencoded"},
|
|
encoding: {type: "enum", keywords: ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"], defaultVal: "application/x-www-form-urlencoded", domAttrName: "enctype"},
|
|
method: {type: "enum", keywords: ["get", "post", "dialog"], defaultVal: "get"},
|
|
name: "string",
|
|
noValidate: "boolean",
|
|
target: "string",
|
|
},
|
|
fieldset: {
|
|
disabled: "boolean",
|
|
name: "string",
|
|
},
|
|
legend: {
|
|
// Obsolete
|
|
align: "string",
|
|
},
|
|
label: {
|
|
htmlFor: {type: "string", domAttrName: "for"},
|
|
},
|
|
input: {
|
|
// Conforming
|
|
accept: "string",
|
|
alt: "string",
|
|
autocomplete: {type: "string", customGetter: true},
|
|
defaultChecked: {type: "boolean", domAttrName: "checked"},
|
|
dirName: "string",
|
|
disabled: "boolean",
|
|
// "formAction" has magic hard-coded in reflection.js
|
|
formAction: "url",
|
|
formEnctype: {type: "enum", keywords: ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"], invalidVal: "application/x-www-form-urlencoded"},
|
|
formMethod: {type: "enum", keywords: ["get", "post"], invalidVal: "get"},
|
|
formNoValidate: "boolean",
|
|
formTarget: "string",
|
|
height: {type: "unsigned long", customGetter: true},
|
|
max: "string",
|
|
maxLength: "limited long",
|
|
min: "string",
|
|
minLength: "limited long",
|
|
multiple: "boolean",
|
|
name: "string",
|
|
pattern: "string",
|
|
placeholder: "string",
|
|
readOnly: "boolean",
|
|
required: "boolean",
|
|
// https://html.spec.whatwg.org/#attr-input-size
|
|
size: {type: "limited unsigned long", defaultVal: 20},
|
|
src: "url",
|
|
step: "string",
|
|
type: {type: "enum", keywords: ["hidden", "text", "search", "tel",
|
|
"url", "email", "password", "date",
|
|
"time", "datetime-local", "number", "range", "color", "checkbox",
|
|
"radio", "file", "submit", "image", "reset", "button"], defaultVal:
|
|
"text"},
|
|
width: {type: "unsigned long", customGetter: true},
|
|
defaultValue: {type: "string", domAttrName: "value"},
|
|
|
|
// Obsolete
|
|
align: "string",
|
|
useMap: "string",
|
|
},
|
|
button: {
|
|
disabled: "boolean",
|
|
// "formAction" has magic hard-coded in reflection.js
|
|
formAction: "url",
|
|
formEnctype: {type: "enum", keywords: ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"], invalidVal: "application/x-www-form-urlencoded"},
|
|
formMethod: {type: "enum", keywords: ["get", "post", "dialog"], invalidVal: "get"},
|
|
formNoValidate: "boolean",
|
|
formTarget: "string",
|
|
name: "string",
|
|
type: {type: "enum", keywords: ["submit", "reset", "button"], defaultVal: "submit"},
|
|
value: "string"
|
|
},
|
|
select: {
|
|
autocomplete: {type: "string", customGetter: true},
|
|
disabled: "boolean",
|
|
multiple: "boolean",
|
|
name: "string",
|
|
required: "boolean",
|
|
size: {type: "unsigned long", defaultVal: 0},
|
|
},
|
|
datalist: {},
|
|
optgroup: {
|
|
disabled: "boolean",
|
|
label: "string",
|
|
},
|
|
option: {
|
|
disabled: "boolean",
|
|
label: {type: "string", customGetter: true},
|
|
defaultSelected: {type: "boolean", domAttrName: "selected"},
|
|
value: {type: "string", customGetter: true},
|
|
},
|
|
textarea: {
|
|
autocomplete: {type: "string", customGetter: true},
|
|
cols: {type: "limited unsigned long with fallback", defaultVal: 20},
|
|
dirName: "string",
|
|
disabled: "boolean",
|
|
maxLength: "limited long",
|
|
minLength: "limited long",
|
|
name: "string",
|
|
placeholder: "string",
|
|
readOnly: "boolean",
|
|
required: "boolean",
|
|
rows: {type: "limited unsigned long with fallback", defaultVal: 2},
|
|
wrap: "string",
|
|
},
|
|
output: {
|
|
htmlFor: {type: "settable tokenlist", domAttrName: "for" },
|
|
name: "string",
|
|
},
|
|
progress: {
|
|
max: {type: "limited double", defaultVal: 1.0},
|
|
},
|
|
meter: {
|
|
value: {type: "double", customGetter: true},
|
|
min: {type: "double", customGetter: true},
|
|
max: {type: "double", customGetter: true},
|
|
low: {type: "double", customGetter: true},
|
|
high: {type: "double", customGetter: true},
|
|
optimum: {type: "double", customGetter: true},
|
|
},
|
|
};
|
|
|
|
mergeElements(formElements);
|