- From: Hayato Ito <notifications@github.com>
- Date: Mon, 25 May 2015 01:48:30 -0700
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Message-ID: <w3c/webcomponents/issues/65@github.com>
Title: [Shadow]: Form elements crossing shadow boundary (bugzilla: 22443)
Migrated from: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22443
----
comment: 0
comment_url: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22443#c0
*Yuta Kitamura* wrote on 2013-06-25 06:50:14 +0000.
The Shadow DOM specification should specify the behavior of form elements
if they cross shadow boundary.
Specifically, it should clarify the behavior of pressing a submit button
(or calling submit() method of the input element) in the following cases:
(1) <form> - - - {shadow-root}
|
+-- <input type="submit">
(2) <form> - - - {shadow-root}
| |
| +-- <content></content>
|
+-- <input type="submit">
and encapsulation requirements of the following properties of form elements:
* HTMLFormElement.elements, length, <getter>(unsigned long), <getter>(DOMString)
* HTMLLabelElement.control
* HTMLInputElement.form (and others)
----
comment: 1
comment_url: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22443#c1
*Dimitri Glazkov* wrote on 2013-06-25 15:34:38 +0000.
Does this not cover it? http://www.w3.org/TR/shadow-dom/#html-forms
----
comment: 2
comment_url: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22443#c2
*Yuta Kitamura* wrote on 2013-06-26 01:19:01 +0000.
Oops, didn't notice that section. However, the current wording is somewhat
vague:
* "each shadow tree must scope its form elements and form-associated elements"
- What does "scope" mean?
* "the form submission must continue to work as specified"
- What input elements are considered to be sent when the submit button is
pressed? For example,
<form> - - - {shadow-root}
| |
| +-- <input type="hidden" name="x" value="1">
| |
| +-- <content select="#sub"></content>
|
+-- <input type="hidden" name="y" value="2">
|
+-- <input id="sub" type="submit">
What should be sent if one presses the submit button? "x=1&y=2",
"x=1", or "y=2"? What's the form owner of <input name="x">?
What about <input name="y">?
- In the example (1) above, <input> element's form owner is null,
thus pressing the button does nothing; am I correct?
----
comment: 3
comment_url: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22443#c3
*Dimitri Glazkov* wrote on 2013-07-17 20:21:53 +0000.
*** Bug 20320 has been marked as a duplicate of this bug. ***
----
comment: 4
comment_url: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22443#c4
*Jonas Sicking* wrote on 2014-05-05 23:42:21 +0000.
I don't think that <input>s in a Shadow DOM should get any special behavior compared to other <input>s that are not in the document. I.e. I don't think they should submit with a <form> that lives in a document.
See my comment in bug 25562 comment 6 for why.
That said, I think that we should implement the system described here http://lists.w3.org/Archives/Public/public-webapps/2014JanMar/0448.html
And we could even add special features for making it easier to submit <input>s that live in a Shadow DOM. One way to do that would be to add a .formData property on DocumentFragment or ShadowRoot. That way the implementation of .formData on a custom element would simply be
function formData() {
return this.shadowRoot.formData();
}
---
Reply to this email directly or view it on GitHub:
https://github.com/w3c/webcomponents/issues/65
Received on Monday, 25 May 2015 08:49:08 UTC