Open SheaBelsky opened 7 years ago
It can; but placeholders MUST NOT be used as replacements for labels - ie, infield labels. Placeholders, by spec (and for a11y/UX) must only be example input - there must always be a label visible the entire time one is typing into the field. "Please enter your full name:" is label text, not placeholder text.
So something like this would be better instead of what I initially described?
Full_Name: fields.string({
errorAfterField: true,
placeholder: "Shea Belsky",
required: validators.required("Please enter your full name."),
validators: [
validators.maxlength(50)
]
}),
produces:
<input type="text" name="Full_Name" placeholder="Shea Belsky">
Yes, totally - altho I'd say "full name" doesn't really need a placeholder :-) it's more useful for things like date fields, when you'd want the placeholder to show the example syntax for dates you expect.
So, is the placeholder attribute supported by these types of inputs? I tried it out and wasn't able to emulate that functionality. Is there any other of populating the placeholder
attribute server-side (e.g. without needing any client-side JavaScript)?
It should be supported on anything that takes text input.
I'm happy to add this functionality, but first I wanted to clear up what the proper purpose of placeholders is :-)
I noticed the
textarea
widget has aplaceholder
attribute for showing some text before any text is actually input (using the HTMLplaceholder
input attribute). Can this functionality be extended to other text-based inputs (fields.string
,fields.email
,fields.password
,fields.number
) as well? For example:produces: