What characters are allowed in the HTML Name attribute inside input tag?
The only real restriction on what characters can appear in form control names is when a form is submitted with GET
"The "get" method restricts form data set values to ASCII characters." reference
There's a good thread on it here.
What characters are allowed in an HTML attribute name?
It depends what you mean by "allowed". Each tag has a fixed list of attribute names which are valid, and in html they are case insensitive. In one important sense, only these characters in the correct sequence are "allowed".
Another way of looking at it, is what characters will browsers treat as a valid attribute name. The best advice here comes from the parser spec of HTML 5, which can be found here: https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
It says that all characters except tab, line feed, form feed, space, solidus, greater than sign, quotation mark, apostrophe and equals sign will be treated as part of the attribute name. Personally, I wouldn't attempt pushing the edge cases of this though.
what characters are allowed in the value attribute of form's input
HTML 5
Except where otherwise specified, attributes on HTML elements may have any string value, including the empty string. Except where explicitly stated, there is no restriction on what text can be specified in such attributes.
HTML 5
The value content attribute gives the default value of the input element. When the value content attribute is added, set, or removed, if the control's dirty value flag is false, the user agent must set the value of the element to the value of the value content attribute, if there is one, or the empty string otherwise, and then run the current value sanitization algorithm, if one is defined.
So there are no restrictions but the value might get altered by the value sanitization algorithm.
For instance, if I enclose this attribute in single close, I can not safely use single quotes in it.
You can. You just can't use literal single quotes. You have to use character references.
What are valid values for the id attribute in HTML?
For HTML 4, the answer is technically:
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
HTML 5 is even more permissive, saying only that an id must contain at least one character and may not contain any space characters.
The id attribute is case sensitive in XHTML.
As a purely practical matter, you may want to avoid certain characters. Periods, colons and '#' have special meaning in CSS selectors, so you will have to escape those characters using a backslash in CSS or a double backslash in a selector string passed to jQuery. Think about how often you will have to escape a character in your stylesheets or code before you go crazy with periods and colons in ids.
For example, the HTML declaration <div id="first.name"></div>
is valid. You can select that element in CSS as #first\.name
and in jQuery like so: $('#first\\.name').
But if you forget the backslash, $('#first.name')
, you will have a perfectly valid selector looking for an element with id first
and also having class name
. This is a bug that is easy to overlook. You might be happier in the long run choosing the id first-name
(a hyphen rather than a period), instead.
You can simplify your development tasks by strictly sticking to a naming convention. For example, if you limit yourself entirely to lower-case characters and always separate words with either hyphens or underscores (but not both, pick one and never use the other), then you have an easy-to-remember pattern. You will never wonder "was it firstName
or FirstName
?" because you will always know that you should type first_name
. Prefer camel case? Then limit yourself to that, no hyphens or underscores, and always, consistently use either upper-case or lower-case for the first character, don't mix them.
A now very obscure problem was that at least one browser, Netscape 6, incorrectly treated id attribute values as case-sensitive. That meant that if you had typed id="firstName"
in your HTML (lower-case 'f') and #FirstName { color: red }
in your CSS (upper-case 'F'), that buggy browser would have failed to set the element's color to red. At the time of this edit, April 2015, I hope you aren't being asked to support Netscape 6. Consider this a historical footnote.
Is name attribute mandatory in input , textarea and button elements?
- If these tags are inside a
form
tag and you are subbmitting that
form to a server, then name is required, - If you are just using them for client-side purposes and don't want to send them to server, then it is optional.
Are there limits and/or prohibited characters for form field names?
The HTML5 spec defines the allowed values for name
attributes on <form>
elements.
The value must not be the empty string, and the value must be unique amongst the
form
elements in theforms
collection that it is in, if any.
Of course it also defines allowed values for the name
attribute on form controls (<input>
, <textarea>
, &c.) (emphasis added).
4.10.19.1 Naming form controls
The
name
content attribute gives the name of the form control, as
used in form submission and in theform
element'selements
object.
If the attribute is specified, its value must not be the empty string.Any non-empty value for
name
is allowed, but the names "_charset_
" and "isindex
" are special:
isindex
This value, if used as the name of a Text control that is the first control in a form that is submitted using the
application/x-www-form-urlencoded
mechanism, causes the submission
to only include the value of this control, with no name.
_charset_
This value, if used as the name of a Hidden control with novalue
attribute, is automatically given a value during
submission consisting of the submission character encoding.
Related Topics
Base64 Png Data to HTML5 Canvas
Document.Body.Scrolltop Is Always 0 in Ie Even When Scrolling
Padding the Top and the Bottom of Inline Element
Calculator Keypad Layout with Flexbox
Bootstrap Navbar: Nothing Is Displayed on Smaller Devices
How to Print Background Images in Ff or Ie
How to Set the Max-Width of a Table Cell Using Percentages
Localization of Input Type Number
Html/CSS - Best Practice for Preserving White Space on Certain Elements
Html5 Localstorage Size Limit for Subdomains
How to Create a Curve Between Two Gradient Using CSS
Empty Vertical Space Between Columns in Bootstrap 4
Add Padding at the Beginning and End of Each Line of Text
How to Have Two Fixed Width Columns With One Flexible Column in the Center
How to Style Dt and Dd So They Are on the Same Line
Position: Sticky' Not Working When 'Height' Is Defined
Multiple ≪Html≫≪Body≫ ≪/Html≫≪/Body≫ in Same File