Closed
Bug 228174
Opened 21 years ago
Closed 21 years ago
HTMLButtonElement.type should not be readonly to allow creation of differerent buttons with the DOM
Categories
(Core :: DOM: Core & HTML, enhancement, P2)
Core
DOM: Core & HTML
Tracking
()
RESOLVED
FIXED
mozilla1.7alpha
People
(Reporter: martin.honnen, Assigned: bzbarsky)
Details
Attachments
(3 files, 1 obsolete file)
3.01 KB,
text/html
|
Details | |
3.27 KB,
text/html
|
Details | |
4.14 KB,
patch
|
Details | Diff | Splinter Review |
The DOM Level 2 HTML specification states that the DOM type attribute (or
JavaScript property) of the HTMLButtonElement is readonly:
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-34812697
However that is somehow nonsense as it means you can create a button dynamically
with
var button = document.createElement('button');
but that you then cannot change the type of the button to for instance 'reset'
or 'button' to create one of the possible HTML button types and insert it into
the document.
I therefore suggest to make the DOM type attribute/property changeable.
If you look back at DOM Level 1 HTML then you will see that the DOM type
attribute of HTMLInputElement was specified as readonly too but of while
http://www.w3.org/TR/DOM-Level-2-HTML/changes.html
states
the attribute type is no longer read only
The reason for that change was exactly the same problem as outlined above for
the HTMLButtonElement, as long as HTMLInputElement.type was readonly you
couldn't create the different input element types with the DOM (see
http://bugzilla.mozilla.org/show_bug.cgi?id=17544).
It would therefore be only consequential to make HTMLButtonElement.type to be
readable and writable too.
I will attach a test case that demonstrates that currently with Mozilla trying
to set HTMLButtonElement.type throws an execption causing any created button to
have the default type submit.
For completeness: tested with Mozilla 1.6b release build (Mozilla/5.0 (Windows;
U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031208) but that problems also occurs
with earlier versions.
Reporter | ||
Comment 1•21 years ago
|
||
Reporter | ||
Comment 2•21 years ago
|
||
With Mozilla this is a workaround for the problem but I still think
HTMLButtonElement.type should not be readonly.
![]() |
Assignee | |
Comment 3•21 years ago
|
||
jst, peterv, what do you think? It would be pretty trivial to make this change,
I suspect; much easier than input types... Should we push for an erratum to DOM2?
Comment 4•21 years ago
|
||
(I'd already made this change in the Web Forms draft, fwiw.)
Comment 5•21 years ago
|
||
I'd say let's make this change in Mozilla, but we can't change
nsIDOMHTMLButtonElement, it's frozen. We'll need to mark the readonly type
attribute in nsIDOMHTMLButtonElement as [noscript] (that change we can make
since it doesn't break binary compatibility) and add a writable type attribute
to nsIDOMNSHTMLButtonElement, that should do it.
![]() |
Assignee | |
Comment 6•21 years ago
|
||
Passes the testcase in this bug....
![]() |
Assignee | |
Comment 7•21 years ago
|
||
Taking.
Assignee: general → bz-vacation
OS: Windows XP → All
Priority: -- → P2
Hardware: PC → All
Target Milestone: --- → mozilla1.7alpha
![]() |
Assignee | |
Comment 8•21 years ago
|
||
Comment on attachment 138461 [details] [diff] [review]
So like this?
jst, would you review?
Attachment #138461 -
Flags: superreview?(jst)
Attachment #138461 -
Flags: review?(jst)
Comment 9•21 years ago
|
||
Comment on attachment 138461 [details] [diff] [review]
So like this?
Yeah, found a few nits to pick...
- In dom/public/idl/html/nsIDOMHTMLButtonElement.idl:
- readonly attribute DOMString type;
+ [noscript] readonly attribute DOMString type;
Add a comment saying that there's a scriptable type attribute in
nsIDOMNSHTMLButtonElement.
- In dom/public/idl/html/nsIDOMNSHTMLButtonElement.idl:
+ attribute DOMString type;
Loose the extra space after 'attribute'.
r+sr=jst
Attachment #138461 -
Flags: superreview?(jst)
Attachment #138461 -
Flags: superreview+
Attachment #138461 -
Flags: review?(jst)
Attachment #138461 -
Flags: review+
![]() |
Assignee | |
Comment 10•21 years ago
|
||
Attachment #138461 -
Attachment is obsolete: true
![]() |
Assignee | |
Comment 11•21 years ago
|
||
Checked in for 1.7a. Martin, thanks for bringing this up!
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•