/[suikacvs]/webroot/www/2006/html5/repeat.ja.html
Suika

Contents of /webroot/www/2006/html5/repeat.ja.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download) (as text)
Mon Oct 9 04:29:46 2006 UTC (18 years, 1 month ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/html
New

1 wakaba 1.1 <!DOCTYPE html>
2     <html lang="ja">
3     <head>
4     <title>Web Forms 2.0 $BH?I|%U%)!<%`@)8f;R%b%G%k$N2r@b(B</title>
5     <link rel="license" href="#license">
6     <link rel="stylesheet" href="http://suika.fam.cx/www/style/html/xhtml">
7     <style type="text/css">
8     :link { color: #00C; background: transparent }
9     :visited { color: #609; background: transparent }
10     :link:active, :visited:active { color: #C00; background: transparent }
11     :link:hover, :visited:hover { background: #ffa; }
12     code :link, code :visited { color: inherit; }
13    
14     p.copyright {
15     font-size: x-small;
16     font-style: oblique;
17     margin: 0;
18     }
19     .translators-note {
20     margin-left: 3em;
21     margin-right: 3em;
22     border: 0.5em blue solid;
23     padding: 0.5em;
24     }
25    
26     pre {
27     margin-left: 4em;
28     margin-top: 1em;
29     margin-bottom: 1em;
30     }
31     pre strong {
32     color: black;
33     font: inherit;
34     font-weight: bold;
35     background: yellow;
36     }
37     pre em {
38     font-weight: bolder;
39     font-style: normal;
40     }
41     .note {
42     color: green;
43     background: transparent;
44     font-family: sans-serif;
45     font-weight: normal;
46     font-style: normal;
47     padding: 0.5em 2em;
48     padding-right: 0;
49     }
50     .note p:first-child {
51     margin-top: 0;
52     }
53     .note p:last-child {
54     margin-bottom: 0;
55     }
56     p.note:before {
57     content: "$BCm0U(B: ";
58     font-weight: bolder;
59     }
60    
61     .example {
62     display: block;
63     color: #222222;
64     background: #FCFCFC;
65     border-style: none;
66     border-left: double;
67     margin-left: 1em;
68     padding-left: 1em;
69     }
70     </style>
71     </head>
72     <body>
73     <h1>Web Forms 2.0 $B$N2r@b(B</h1>
74    
75     <div class="section">
76     <h2>$BH?I|%U%)!<%`@)8f;R%b%G%k(B</h2>
77    
78     <div class="translators-note">
79     <p>$B$3$NJ8=q$O!"(B <a href="http://www.whatwg.org/specs/web-forms/current-work/"
80     lang="en">Web Forms 2.0</a> $B$N(B2006$BG/(B9$B7n(B26$BF|:n6H860FCf$N2r@b$N0lIt$rF|K\8l$KK]Lu$7$?$b$N$G$9!#(B</p>
81    
82     <div id="license" lang="en">
83     <p class="copyright">&#x00A9; Copyright 2004, 2005 Apple Computer, Inc., Mozilla Foundation, and Opera Software ASA.</p>
84    
85     <p class="copyright">You are granted a license to use, reproduce and create derivative works of this document.</p>
86     </div>
87     </div>
88    
89     <div class="section">
90     <h3 id="introduction1"><span class="secno">3.1. </span><!--Introduction for
91     authors-->$BCx<T$X$NF3F~(B</h3>
92    
93     <p><em><!--This subsection is not normative.-->$B$3$N@a$O5,Dj$N0lIt$G$O$"$j$^$;$s!#(B</em>
94    
95     <p><!--Occasionally, a form may need a section to be repeated an arbitrary
96     number of times. For example, an order form could have one row per item.
97     Traditionally, this has been implemented either by using complex
98     client-side scripts or by sending a request to the server for every new
99     row.-->$B$?$^$K!"%U%)!<%`$N0lIt$rG$0U$N2s?t7+$jJV$7$?$$$3$H$,$"$j$^$9!#(B
100     $BNc$($P!"CmJ8%U%)!<%`$G$O9`L\$4$H$K(B1$B9T$H$7$?$$$G$7$g$&!#(B
101     $B$3$l$^$G$O!"J#;($J%/%i%$%"%s%HB&%9%/%j%W%H$r;H$&$+!"(B
102     $B?7$7$$9T$rDI2C$9$k$4$H$K;*$KMW5a$rAw?.$9$k$+$K$h$j<BAu$7$F$-$^$7$?!#(B</p>
103    
104     <p><!--Using the mechanisms described in this section, the problem is reduced
105     to describing a template in the markup, and then specifying where and when
106     that template should be repeated.-->$B$3$NLdBj$O!"(B
107     $B$3$N>O$G@bL@$9$k;EAH$_$r;H$&$3$H$G4JC1$K$J$j!"(B
108     $B?w7A$r%^!<%/$7!"$$$D$I$3$G$3$N?w7A$r7+$jJV$9$N$+$r;XDj$9$k$@$1$G$h$/$J$j$^$9!#(B</p>
109    
110     <p><!--To explain this, we will step through an example. Here is a sample form
111     with three rows:-->$B=g$rDI$C$FNc$r8+$F$$$-$^$7$g$&!#(B
112     $B<!$K<($9$N$O!"(B3$B9T$N%U%)!<%`Nc$G$9!#(B</p>
113    
114     <pre class="HTML"><code>&lt;!DOCTYPE html&gt;
115     &lt;html&gt;
116     &lt;head&gt;
117    
118     &lt;title&gt;<!--Sample Order Form-->$BCmJ8%U%)!<%`Nc(B&lt;/title&gt;
119     &lt;/head&gt;
120     &lt;body&gt;
121     &lt;form&gt;
122     &lt;table&gt;
123     &lt;tr&gt;
124     &lt;th&gt;<!--Product-->$BIJL>(B&lt;/th&gt;
125     &lt;th&gt;<!--Quantity-->$B?tNL(B&lt;/th&gt;
126     &lt;/tr&gt;
127     &lt;tr&gt;
128     &lt;td&gt;&lt;input type="text" name="row0.product" value=""&gt;&lt;/td&gt;
129     &lt;td&gt;&lt;input type="text" name="row0.quantity" value="1"&gt;&lt;/td&gt;
130     &lt;/tr&gt;
131     &lt;tr&gt;
132     &lt;td&gt;&lt;input type="text" name="row1.product" value=""&gt;&lt;/td&gt;
133     &lt;td&gt;&lt;input type="text" name="row1.quantity" value="1"&gt;&lt;/td&gt;
134     &lt;/tr&gt;
135     &lt;tr&gt;
136     &lt;td&gt;&lt;input type="text" name="row2.product" value=""&gt;&lt;/td&gt;
137     &lt;td&gt;&lt;input type="text" name="row2.quantity" value="1"&gt;&lt;/td&gt;
138     &lt;/tr&gt;
139     &lt;/table&gt;
140     &lt;p&gt;&lt;button type="submit"&gt;<!--Submit-->$BDs=P(B&lt;/button&gt;&lt;/p&gt;
141     &lt;/form&gt;
142     &lt;/body&gt;
143     &lt;/html&gt;
144     </code></pre>
145    
146     <p><!--The template for those rows could look something like:-->
147     $B$3$N(B3$B9T$N?w7A$O!"<!$N$h$&$K$J$j$^$9!#(B</p>
148    
149     <pre class="HTML"><code> &lt;tr&gt;
150     &lt;td&gt;&lt;input type="text" name="row0.product" value=""&gt;&lt;/td&gt;
151     &lt;td&gt;&lt;input type="text" name="row0.quantity" value="1"&gt;&lt;/td&gt;
152     &lt;/tr&gt;
153     </code></pre>
154    
155     <p><!--...except that then the names would all be the same &mdash; all rows
156     would be "row0", so there would be no clear way of distinguishing which
157     "quantity" went with which "product" except by the order in which they
158     were submitted.-->$B$?$@$7!"L>A0$O$9$Y$FF1$8$K$J$j$^$9!#(B
159     $B$I$N9T$b(B <code lang="en">row0</code> $B$K$J$k$N$G!"(B
160     $BDs=P;~$N=g=x$r$_$J$$$H$I$N(B <code lang="en">quantity</code> $B$,$I$N(B
161     <code lang="en">product</code> $B$HBP1~$9$k$N$+$,ITL@3N$K$J$C$F$7$^$$$^$9!#(B</p>
162    
163     <p><!--To get around this, the template is modified slightly:-->$B$=$3$G!"(B
164     $B?w7A$r<!$N$h$&$K=$@5$7$^$9!#(B</p>
165    
166     <pre class="HTML"><code> &lt;tr <strong>id="order"</strong>&gt;
167     &lt;td&gt;&lt;input type="text" name="row<strong>[order]</strong>.product" value=""&gt;&lt;/td&gt;
168     &lt;td&gt;&lt;input type="text" name="row<strong>[order]</strong>.quantity" value="1"&gt;&lt;/td&gt;
169     &lt;/tr&gt;
170     </code></pre>
171    
172     <p><!--The template now has a unique identifier ("order"), and that identifier
173     is used to indicate where the row index should be substituted in. When a
174     template is replicated, all the attributes containing the template's id
175     between square bracket characters (<code>[<var>id</var>]</code>) have that
176     ID (and the brackets) replaced by a unique index.-->$B?w7A$K8GM-<1JL;R(B
177     (<code lang="en">order</code>) $B$rM?$($^$7$?!#(B
178     $B$3$N<1JL;R$O!"9T:w0zHV9f$rCV49$9$k$Y$->l=j$r<($9$?$a$K;H$$$^$9!#(B
179     $B?w7A$,J#@=$5$l$k;~$K$O!";M3Q3g8L$G0O$C$??w7A$N<1JL;R(B
180     (<code>[<var>$B<1JL;R(B</var>]</code>) $B$r4^$`B0@-$O$9$Y$F!"(B
181     $B$=$N<1JL;R(B ($B$H3g8L(B) $B$,8GM-$N:w0zHV9f$GCV49$5$l$^$9!#(B</p>
182    
183     <p class="note"><!--To prevent an attribute from being processed in this way,
184     put a non-breaking zero-width space character (<code>&amp;#xFEFF;</code>)
185     at the start of the attribute value. When the template is cloned, that
186     character will be removed, but any other text in the attribute will be
187     left alone. This could be useful if you have no control over the rest of
188     the contents in the attribute, e.g. if it is user configurable text.-->
189     $BB0@-$,$3$N$h$&$K=hM}$5$l$F$7$^$&$3$H$rKI$.$?$1$l$P!"(B
190     $BB0@-CM$N@hF,$K(B <code class="charname" lang="en">NON-BREAKING
191     ZERO-WIDTH SPACE</code> (<code class="HTML">&amp;#xFEFF;</code>)
192     $B$rF~$l$F$/$@$5$$!#?w7A$rJ#@=$9$k$H$-$K$3$NJ8;z$O:o=|$5$l!"(B
193     $BB0@-CM$N;D$j$O$=$N$^$^J#@=$5$l$^$9!#$3$l$O!"(B
194     $BNc$($PMxMQ<T$,JQ99$G$-$kJ8;zNs$N$h$&$K!"(B
195     $BB0@-CM$NFbMF$N;D$j$NItJ,$rCx<T$,7h$a$i$l$J$$;~$KJXMx$G$7$g$&!#(B</p>
196    
197     <p><!--In order to distinguish this row from a normal row, something needs to
198     be added to the template to mark it as being a template. This is done
199     using a <span><code><a href="#repeat">repeat</a></code> attribute</span>:-->
200     $B?w7A$N9T$rDL>o$N9T$H6hJL$9$k$?$a$K!"(B
201     $B?w7A$O?w7A$G$"$k$H$$$&0u$r2C$($kI,MW$,$"$j$^$9!#(B
202     $B$3$l$O(B <code class="HTMLa" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#repeat">repeat</a></code>
203     $BB0@-$r;H$C$F9T$$$^$9!#(B</p>
204    
205     <pre class="HTML"><code> &lt;tr id="order" <strong>repeat="template"</strong>&gt;
206     &lt;td&gt;&lt;input type="text" name="row[order].product" value=""&gt;&lt;/td&gt;
207     &lt;td&gt;&lt;input type="text" name="row[order].quantity" value="1"&gt;&lt;/td&gt;
208     &lt;/tr&gt;
209     </code></pre>
210    
211     <p><!--Now we replace the table with that markup:-->$B$G$O!"(B
212     $B$O$8$a$NI=$r$3$N%^!<%/$GCV$-49$($^$7$g$&!#(B</p>
213    
214     <pre class="HTML"><code>&lt;!DOCTYPE html&gt;
215     &lt;html&gt;
216     &lt;head&gt;
217     &lt;title&gt;<!--Sample Order Form-->$BCmJ8%U%)!<%`Nc(B&lt;/title&gt;
218     &lt;/head&gt;
219     &lt;body&gt;
220     &lt;form&gt;
221     &lt;table&gt;
222     &lt;tr&gt;
223     &lt;th&gt;<!--Product-->$BIJL>(B&lt;/th&gt;
224     &lt;th&gt;<!--Quantity-->$B?tNL(B&lt;/th&gt;
225     &lt;/tr&gt;
226     <strong> &lt;tr id="order" repeat="template"&gt;
227     &lt;td&gt;&lt;input type="text" name="row[order].product" value=""&gt;&lt;/td&gt;
228     &lt;td&gt;&lt;input type="text" name="row[order].quantity" value="1"&gt;&lt;/td&gt;
229     &lt;/tr&gt;</strong>
230     &lt;/table&gt;
231     &lt;p&gt;&lt;button type="submit"&gt;<!--Submit-->$BDs=P(B&lt;/button&gt;&lt;/p&gt;
232     &lt;/form&gt;
233     &lt;/body&gt;
234     &lt;/html&gt;
235     </code></pre>
236    
237     <p><!--This will make one row appear, because by default templates repeat
238     themselves once. We can control how many times the template repeats itself
239     using the <span><code><a href="#repeat-start">repeat-start</a></code>
240     attribute</span>:-->$B?w7A$N7+$jJV$72s?t$N4{DjCM$O(B1$B$J$N$G!"(B
241     1$B9T8=$l$k$3$H$K$J$j$^$9!#?w7A$r2?2s7+$jJV$9$+$O!"(B
242     <code class="HTMLa" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#repeat-start">repeat-start</a></code>
243     $BB0@-$G@)8f$G$-$^$9!#(B</p>
244    
245     <pre class="HTML"> <code><em>...</em>
246     &lt;tr id="order" repeat="template" <strong>repeat-start="3"</strong>&gt;
247     &lt;td&gt;&lt;input type="text" name="row[order].product" value=""&gt;&lt;/td&gt;
248     &lt;td&gt;&lt;input type="text" name="row[order].quantity" value="1"&gt;&lt;/td&gt;
249     &lt;/tr&gt;
250     &lt;/table&gt;</code>
251     </pre>
252    
253     <p><!--This is now identical to the original example (three rows with empty
254     controls will appear). It still isn't dynamic &mdash; there is no way for
255     the user to add more rows.-->$B$3$l$G$O$8$a$NNc(B
256     (3$B9T$H6u$N@)8f;R(B) $B$HF1$8$K$J$j$^$7$?!#$7$+$7!"$3$l$O$^$@F0E*$G$O$"$j$^$;$s!#(B
257     $BMxMQ<T$,99$K9T$rDI2C$9$kJ}K!$,$"$j$^$;$s!#(B</p>
258    
259     <p><!--This can be solved by adding an <code><a href="#add">add</a></code>
260     button. The <code><a href="#add">add</a></code> button type adds a copy of
261     a template when the user presses the button.-->$B$3$l$O(B
262     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#add">add</a></code>
263     $B%\%?%s$rDI2C$9$l$P2r7h$7$^$9!#(B
264     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#add">add</a></code>
265     $B%\%?%s7?$O!"MxMQ<T$,$=$N%\%?%s$r2!$9$H!"(B
266     $B?w7A$NJ#@=$rDI2C$7$^$9!#(B</p>
267    
268     <p><!--There are two ways to use <code><a href="#add">add</a></code> buttons.
269     The first is by explicitly specifying which template should be replicated:-->
270     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#add">add</a></code>
271     $B%\%?%s$K$O(B2$B<oN`$N;H$$J}$,$"$j$^$9!#(B1$B$DL\$O!"(B
272     $B$I$N?w7A$rJ#@=$9$k$+$rL@<(E*$K;XDj$9$kJ}K!$G$9!#(B</p>
273    
274     <pre class="HTML"><code> &lt;p&gt;&lt;button type="add" <strong>template="order"</strong>&gt;<!--Add Row-->$B9T$rDI2C(B&lt;/button&gt;&lt;/p&gt;
275     </code></pre>
276    
277     <p><!--The template is specified using a <code><a
278     href="#template">template</a></code> attribute on the <code>button
279     type="add"</code> or <code>input type="add"</code> elements. In the
280     <code><a href="#template">template</a></code> attribute, you put the ID of
281     the template you want the button to affect.-->$B?w7A$O(B
282     <code class="HTML" lang="en">button type="add"</code> $B$^$?$O(B
283     <code class="HTML" lang="en">input type="add"</code>
284     $B$NMWAG$N(B <code class="HTMLa" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#template">template</a></code>
285     $BB0@-$r;H$C$F;XDj$7$^$9!#(B
286     <code class="HTMLa" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#template">template</a></code>
287     $BB0@-$K$O!"%\%?%s$GDI2C$7$?$$?w7A$N<1JL;R$rF~$l$^$9!#(B</p>
288    
289     <p><!--When such a button is pressed, the template is replicated, and the
290     resulting block is inserted just after the last block that is associated
291     with the template. For example, there are three rows in the example above,
292     so if the user pressed that button, the new block would be inserted just
293     after the third one.-->$B$3$N$h$&$J%\%?%s$r2!$9$H!"(B
294     $B?w7A$,J#@=$5$l!"J#@=$5$l$F$G$-$?%V%m%C%/$,!"(B
295     $B$=$N?w7A$K4XO"IU$1$i$l$?:G8e$N%V%m%C%/$ND>8e$KA^F~$5$l$^$9!#(B
296     $BNc$($P!"@h$NNc$G(B3$B$D$N9T$,$"$k>uBV$G!"(B
297     $BMxMQ<T$,$3$N%\%?%s$r2!$9$H!"(B
298     $B?7$7$$%V%m%C%/$,(B3$B$DL\$N%V%m%C%/$ND>8e$KA^F~$5$l$^$9!#(B</p>
299    
300     <p><!--The second way is by including an <code><a href="#add">add</a></code>
301    
302     button inside the template, so that when the template is replicated, the
303     button is replicated into the resulting block. When such a button is
304     pressed, the template is replicated, and inserted immediately after the
305     block in which the button is found. For example, if there were <code><a
306     href="#add">add</a></code> buttons in the rows of the example above, and
307     someone pressed the button in the first row, a row would be inserted
308     between the first row and the second row.-->2$B$DL\$O!"(B
309     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#add">add</a></code>
310     $B%\%?%s$r?w7A$NCf$KCV$-!"(B
311     $B$=$N?w7A$,J#@=$5$l$l$P%\%?%s$bJ#@=$5$l$?%V%m%C%/$NCf$KJ#@=$5$l$k$H$$$&J}K!$G$9!#(B
312     $B$3$N<oN`$N%\%?%s$r2!$9$H!"?w7A$OJ#@=$5$l!"(B
313     $B$=$N%\%?%s$,4^$^$l$k%V%m%C%/$ND>8e$KA^F~$5$l$^$9!#(B
314     $BNc$($P!"@h$NNc$N3F9T$K(B
315     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#add">add</a></code>
316     $B%\%?%s$,$"$j!"C/$+$,:G=i$N9T$N%\%?%s$r2!$9$H!"(B
317     $B:G=i$N9T$H(B2$B$DL\$N9T$N4V$K?7$7$$9T$,A^F~$5$l$^$9!#(B</p>
318    
319     <p><!--For this example we will only do it the first way:-->$B$3$NNc$G$O:G=i$NJ}K!$@$1$r;H$$$^$9!#(B</p>
320    
321     <pre class="HTML"><code>&lt;!DOCTYPE html&gt;
322     &lt;html&gt;
323     &lt;head&gt;
324     &lt;title&gt;<!--Sample Order Form-->$BCmJ8%U%)!<%`Nc(B&lt;/title&gt;
325     &lt;/head&gt;
326     &lt;body&gt;
327     &lt;form&gt;
328     &lt;table&gt;
329     &lt;tr&gt;
330     &lt;th&gt;<!--Product-->$BIJL>(B&lt;/th&gt;
331     &lt;th&gt;<!--Quantity-->$B?tNL(B&lt;/th&gt;
332     &lt;/tr&gt;
333     &lt;tr id="order" repeat="template" repeat-start="3"&gt;
334     &lt;td&gt;&lt;input type="text" name="row[order].product" value=""&gt;&lt;/td&gt;
335     &lt;td&gt;&lt;input type="text" name="row[order].quantity" value="1"&gt;&lt;/td&gt;
336     &lt;/tr&gt;
337     &lt;/table&gt;
338     <strong> &lt;p&gt;&lt;button type="add" template="order"&gt;<!--Add Row-->$B9T$rDI2C(B&lt;/button&gt;&lt;/p&gt;</strong>
339     &lt;p&gt;&lt;button type="submit"&gt;<!--Submit-->$BDs=P(B&lt;/button&gt;&lt;/p&gt;
340     &lt;/form&gt;
341     &lt;/body&gt;
342     &lt;/html&gt;
343     </code></pre>
344    
345     <p><!--Now the user can add more rows, but he cannot remove them. Removing rows
346     is done via the <code><a href="#remove">remove</a></code> button type.
347     When a user presses such a button, the row in which the button is kept is
348     removed from the document.-->$B$3$l$GMxMQ<T$O9T$rDI2C$G$-$k$h$&$K$J$j$^$7$?$,!"(B
349     $B:o=|$9$k$3$H$O$G$-$^$;$s!#9T$N:o=|$O(B
350     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#remove">remove</a></code>
351     $B%\%?%s7?$K$h$j9T$$$^$9!#MxMQ<T$,$3$N<oN`$N%\%?%s$r2!$9$H!"(B
352     $B%\%?%s$,4^$^$l$k9T$,J8=q$+$i:o=|$5$l$^$9!#(B</p>
353    
354     <pre class="HTML"><code> &lt;button type="remove"&gt;<!--Remove This Row-->$B$3$N9T$r:o=|(B&lt;/button&gt;
355     </code></pre>
356    
357     <p><!--This is added to the template so that it appears on every row:-->$B$3$l$r?w7A$KDI2C$9$l$P!"(B
358     $B3F9T$K8=$l$k$h$&$K$J$j$^$9!#(B</p>
359    
360     <pre class="HTML"><code> &lt;tr id="order" repeat="template" repeat-start="3"&gt;
361     &lt;td&gt;&lt;input type="text" name="row[order].product" value=""&gt;&lt;/td&gt;
362     &lt;td&gt;&lt;input type="text" name="row[order].quantity" value="1"&gt;&lt;/td&gt;
363     <strong> &lt;td&gt;&lt;button type="remove"&gt;<!--Remove This Row-->$B$3$N9T$r:o=|(B&lt;/button&gt;&lt;/td&gt;</strong>
364     &lt;/tr&gt;
365     </code></pre>
366    
367     <p><!--The final result looks like this:-->$B:G=*E*$K$3$N$h$&$K$J$j$^$9!#(B</p>
368    
369     <pre class="HTML"><code>&lt;!DOCTYPE html&gt;
370     &lt;html&gt;
371     &lt;head&gt;
372     &lt;title&gt;<!--Sample Order Form-->$BCmJ8%U%)!<%`Nc(B&lt;/title&gt;
373     &lt;/head&gt;
374     &lt;body&gt;
375     &lt;form&gt;
376     &lt;table&gt;
377     &lt;tr&gt;
378     &lt;th&gt;<!--Product-->$BIJL>(B&lt;/th&gt;
379     &lt;th&gt;<!--Quantity-->$B?tNL(B&lt;/th&gt;
380     &lt;/tr&gt;
381     &lt;tr id="order" repeat="template" repeat-start="3"&gt;
382     &lt;td&gt;&lt;input type="text" name="row[order].product" value=""&gt;&lt;/td&gt;
383     &lt;td&gt;&lt;input type="text" name="row[order].quantity" value="1"&gt;&lt;/td&gt;
384     &lt;td&gt;&lt;button type="remove"&gt;<!--Remove This Row-->$B$3$N9T$r:o=|(B&lt;/button&gt;&lt;/td&gt;
385     &lt;/tr&gt;
386     &lt;/table&gt;
387     &lt;p&gt;&lt;button type="add" template="order"&gt;<!--Add Row-->$B9T$rDI2C(B&lt;/button&gt;&lt;/p&gt;
388     &lt;p&gt;&lt;button type="submit"&gt;<!--Submit-->$BDs=P(B&lt;/button&gt;&lt;/p&gt;
389     &lt;/form&gt;
390     &lt;/body&gt;
391     &lt;/html&gt;
392     </code></pre>
393    
394     <p><!--If the user pressed "Add" once, removed the middle two rows, typed in
395     some garbage in the two "product" text controls, and pressed "Submit", the
396     user agent would submit the following name-value pairs:-->$BMxMQ<T$,0lEY(B
397     <q>$BDI2C(B</q>$B$r2!$7!"??$sCf$N(B2$B$D$N9T$r:o=|$7!"(B
398     2$B$D$N(B<q>$BIJL>(B</q>$BMs$KE,Ev$KF~NO$7!"(B<q>$BDs=P(B</q>$B$r2!$9$H!"(B
399     $BMxMQ<T%(!<%8%'%s%H$O<!$NL>A0$HCM$NAH$rDs=P$9$k$3$H$K$J$j$^$9!#(B</p>
400    
401     <pre lang="en"><code>row0.product=some
402     row0.quantity=1
403     row3.product=garbage
404     row3.quantity=1
405     </code></pre>
406    
407     <p><!--Further examples are given in the <a href="#repeatExamples">examples
408     section</a> below.--><a href="#repeatExamples">$BNc$N@a(B</a>$B$K99$KNc$r<($7$^$9!#(B</p>
409    
410     <div class="section">
411     <h4 id="more-features"><span class="secno">3.1.1. </span><!--More features-->$B99$J$k5!G=(B</h4>
412    
413     <p><!--The repetition model supports more than just the cases given above; for
414     instance, there are <code><a href="#move-up">move-up</a></code> and
415     <code><a href="#move-down">move-down</a></code> buttons that can be
416     inserted inside templates much like the <code><a
417     href="#remove">remove</a></code> button but for moving rows up and down.-->$BH?I|%b%G%k$K$OB>$K$b5!G=$,$"$j$^$9!#(B
418     $BNc$($P!"(B
419     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#remove">remove</a></code>
420     $B%\%?%s$HF1MM$K?w7AFb$KA^F~$7!"9T$r>e2<$K0\F0$5$;$k$3$H$,$G$-$k!"(B
421     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#move-up">move-up</a></code>
422     $B%\%?%s$H(B
423     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#move-down">move-down</a></code>
424     $B%\%?%s$,$"$j$^$9!#(B</p>
425    
426     <p><!--Repetition templates can also be nested. The concept of hierarchy is
427     expected to be represented in the names, as it is in manually-created
428     repeating forms; for example:-->$BH?I|?w7A$rF~$l;R$K$9$k$3$H$b$G$-$^$9!#(B
429     $B<jF0$GH?I|%U%)!<%`$r:n@.$9$k>l9g$HF1$8$h$&$K!"(B
430     $BL>A0$K3,AX$N35G0$r@9$j9~$`$3$H$rA[Dj$7$F$$$^$9!#Nc$($P!"(B</p>
431    
432     <pre lang="en"><code>order0.name
433     order0.quantity
434     order0.comment0.text
435     order0.comment1.text
436     order1.name
437     order1.quantity
438     order1.comment0.text
439     </code></pre>
440    
441     <p><!--That way the submission can remain compatible with the long-established
442     <code>multipart/form-data</code>, yet not lose the structure of the data.-->
443     $B$3$NJ}K!$G!"%G!<%?$N9=B$$r<:$&$3$H$J$/!"D9$/;H$o$l$F$-$?(B
444     <code class="MIME" lang="en">multipart/form-data</code>
445     $B$H$N8_49@-$rJ]$AB3$1$k$3$H$,$G$-$^$9!#(B</p>
446    
447     <p class="note"><!--The naming schemes used above are arbitrary. Any naming
448     scheme could be used, at the convenience of the author.-->$B$3$3$K<($7$?L?L>J}<0$OE,Ev$J$b$N$G$9!#(B
449     $BCx<T$OET9g$,NI$$G$0U$NL?L>J}<0$r;H$&$3$H$,$G$-$^$9!#(B</p>
450     </div>
451    
452     <div class="section">
453     <h4 id="suggestions"><span class="secno">3.1.2. </span><!--Suggestions for
454     authors-->$BCx<T$X$NDs0F(B</h4>
455    
456     <p><!--To include prefilled rows in the document, include copies of the row
457     with <code><a href="#repeat">repeat</a></code> attributes having the value
458     of the repetition index you want to use for that block.-->$BJ8=qCf$KF~NO:Q$_$N9T$rA^F~$9$k;~$O!"(B
459     $B$=$N%V%m%C%/$G;H$$$?$$H?I|:w0zHV9f$rCM$H$9$k(B
460     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#repeat">repeat</a></code>
461     $BB0@-$,$"$k9T$H$7$F$/$@$5$$!#(B</p>
462    
463     <div class="example">
464     <p><!--For example, here is a prefilled version of the earlier table, with one
465     row having index "1" with the text "Tom figurine" in the first control
466     and "12" in the second, and with a second row having index "2" and values
467     "Jerry figurine" and "5".-->$BNc$($P!"@h$NI=$,M=$aKd$a$i$l$F$$$F!"(B
468     $B:G=i$NNs$O:w0zHV9f$,(B <code>1</code> $B$G:G=i$N@)8f;R$,(B
469     <q>$BB@O:A|(B</q>$B$G(B2$B$DL\$,(B <q>12</q>$B!"(B
470     2$B$DL\$NNs$O:w0zHV9f$,(B <code>2</code>
471     $B$GCM$,(B<q>$B2V;RA|(B</q>$B$H(B <q>5</q> $B$H$7$^$9!#(B</p>
472    
473     <pre lang="HTML"><code>...
474     &lt;table&gt;
475     &lt;tr&gt;
476     &lt;th&gt;<!--Product-->$BIJL>(B&lt;/th&gt;
477     &lt;th&gt;<!--Quantity-->$B?tNL(B&lt;/th&gt;
478     &lt;/tr&gt;
479     &lt;tr repeat="<strong>1</strong>"&gt;
480     &lt;td&gt;&lt;input type="text" name="row<strong>1</strong>.product" value="<!--Tom figurine-->$BB@O:A|(B"&gt;&lt;/td&gt;
481     &lt;td&gt;&lt;input type="text" name="row<strong>1</strong>.quantity" value="12"&gt;&lt;/td&gt;
482     &lt;td&gt;&lt;button type="remove"&gt;<!--Remove This Row-->$B$3$N9T$r:o=|(B&lt;/button&gt;&lt;/td&gt;
483     &lt;/tr&gt;
484     &lt;tr repeat="2"&gt;
485     &lt;td&gt;&lt;input type="text" name="row2.product" value="<!--Jerry figurine-->$B2V;RA|(B"&gt;&lt;/td&gt;
486     &lt;td&gt;&lt;input type="text" name="row2.quantity" value="5"&gt;&lt;/td&gt;
487     &lt;td&gt;&lt;button type="remove"&gt;<!--Remove This Row-->$B$3$N9T$r:o=|(B&lt;/button&gt;&lt;/td&gt;
488     &lt;/tr&gt;
489     &lt;tr id="order" repeat="template" repeat-start="1"&gt;
490     &lt;td&gt;&lt;input type="text" name="row[order].product" value=""&gt;&lt;/td&gt;
491     &lt;td&gt;&lt;input type="text" name="row[order].quantity" value="1"&gt;&lt;/td&gt;
492     &lt;td&gt;&lt;button type="remove"&gt;<!--Remove This Row-->$B$3$N9T$r:o=|(B&lt;/button&gt;&lt;/td&gt;
493     &lt;/tr&gt;
494     &lt;/table&gt;
495     ...</code></pre>
496     </div>
497    
498     <p><!--Prefilled rows must go <em>before</em> the template.-->$BF~NO:Q$_$N9T$O?w7A$N(B<em>$BA0(B</em>$B$K$J$1$l$P$J$j$^$;$s!#(B</p>
499    
500     <p><!--Prefilled rows can contain any content; it need not match the template.
501     In order to be considered a part of the repetition model, however, the row
502     must have a <code><a href="#repeat">repeat</a></code> attribute with a
503     numeric value. That value can be any integer. (For example, you could use
504     "-1" as the value of all prefilled rows.)-->$BF~NO:Q$_$N9T$O!"(B
505     $B$I$s$JFbMF$r4^$s$G$$$F$b9=$$$^$;$s!#?w7A$H0lCW$9$kI,MW$O$"$j$^$;$s!#(B
506     $B$7$+$7!"H?I|%b%G%k$N0lIt$G$"$k$H$_$J$5$l$k$?$a$K$O!"(B
507     $B9T$K$O(B
508     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#repeat">repeat</a></code>
509     $BB0@-$,$"$C$F!"?tCM$,M?$($i$l$F$$$J$1$l$P$J$j$^$;$s!#(B
510     $B$3$NCM$O@0?t$J$i2?$G$b9=$$$^$;$s!#(B ($BNc$($P!"(B
511     $B$9$Y$F$NF~NO:Q$_$N9T$r(B <code>-1</code> $B$H$9$k$3$H$b$G$-$^$9!#(B)</p>
512    
513     <p><!--In HTML4-compliant UAs that do not implement this specification, the
514     template acts as an initial blank row, and the "add" and "remove", buttons
515     cause the form to be submitted, allowing the server to simulate the
516     insertion and removal of rows.-->HTML 4
517     $B$KE,9g$9$kMxMQ<T%(!<%8%'%s%H$G$3$N;EMM$r<BAu$7$F$$$J$$$b$N$G$O!"(B
518     $B?w7A$O:G=i$N6u9T$H$7$F5!G=$7!"(B <code lang="en">add</code> $B$H(B
519     <code lang="en">remove</code> $B$N%\%?%s$O%U%)!<%`$rDs=P$5$;$k$3$H$K$J$k$N$G!"(B
520     $B;*$O9T$NA^F~$d:o=|$r%7%_%e%l!<%H$G$-$^$9!#(B</p>
521    
522     <p class="note"><!--The add and remove buttons act as submit buttons in
523     compliant HTML4 UAs only if <code>button</code> elements are used. If
524     <code>input</code> buttons are used, then legacy UAs will instead render
525     the controls as text fields. It is thus recommended that authors use
526     <code>button</code> elements.-->$BDI2C$d:o=|$N%\%?%s$,E,9g(B HTML 4
527     $BMxMQ<T%(!<%8%'%s%H$GDs=P%\%?%s$H$7$FF/$/$N$O!"(B
528     <code class="HTMLe" lang="en">button</code> $BMWAG$,;H$o$l$?;~$@$1$G$9!#(B
529     <code class="HTMLe" lang="en">input</code> $B%\%?%s$,;H$o$l$k$H!"(B
530     $B=>Mh$NMxMQ<T%(!<%8%'%s%H$OBe$o$j$KJ8>OF~NOMs$H$7$F%l%s%@%j%s%0$7$^$9!#(B
531     $B$G$9$+$i!"Cx<T$O(B <code class="HTMLe" lang="en">button</code>
532     $BMWAG$r;H$&$h$&?d>)$7$^$9!#(B</p>
533     </div>
534    
535     <div class="section">
536     <h4 id="tracking"><span class="secno">3.1.3. </span><!--Tracking the order of
537     repetition blocks in the submission-->$BDs=P$5$l$?H?I|%V%m%C%/$N=g=x$rDI@W$9$k(B</h4>
538    
539     <p><!--If a server-side framework does not preserve the order of fields
540     relative to each other but does preserve the relative order of values with
541     the same name, authors can use a hidden control in all the repetition
542     blocks whose name is the same in each block but whose value is the
543     repetition index. Then, to determine the order of the repetition blocks,
544     the order of the values in this common control can be used.-->$B;*B&$G;HMQ$9$kOHAH$,Ms$N8_$$$N=g=x$rJ];}$7$F$*$i$:!"(B
545     $BF1$8L>A0$NCM$NAjBPE*$J=g=x$OJ];}$7$F$$$k>l9g$K$O!"(B
546     $BCx<T$O!"1#$7@)8f;R$r$9$Y$F$NH?I|%V%m%C%/$KF~$l$F;H$&$3$H$,$G$-$^$9!#(B
547     $B1#$7@)8f;R$NL>A0$O$9$Y$F$N%V%m%C%/$GF1$8$H$7$^$9$,!"(B
548     $BCM$OH?I|:w0zHV9f$H$7$^$9!#$=$7$F!"H?I|%V%m%C%/$N=g=x$rH=CG$9$k$?$a$K$O!"(B
549     $B$3$N6&DL$N@)8f;R$NCM$N=g=x$r;H$&$3$H$,$G$-$^$9!#(B</p>
550     </div>
551    
552     <div class="section">
553     <h4 id="what-the"><span class="secno">3.1.4. </span><!--What the repetition
554     model can't do-->$BH?I|%b%G%k$G$G$-$J$$$3$H(B</h4>
555    
556     <p><!--This specification does not address the ability to select a repetition
557     block to move it up or down without using buttons directly associated with
558     the current block.-->$B$3$N;EMM$O8=:_$NH?I|%V%m%C%/$HD>@\4XO"IU$1$i$l$F$$$J$$%\%?%s$r;H$C$FH?I|%V%m%C%/$r>e2<$K0\F0$5$;$kG=NO$K$D$$$F$O8@5Z$7$^$;$s!#(B</p>
559     </div>
560    
561     <div class="section">
562     <h4 id="small"><span class="secno">3.1.5. </span><!--Small example for
563     non-XHTML documents-->$BHs(B XHTML $BJ8=q$N>.Nc(B</h4>
564    
565     <p><!--This feature can also be used in non-XHTML documents. Here is an example
566     using SVG where clicking a green rectangle makes purple rectangles appear,
567     and clicking the purple rectangles makes them disappear.-->$B$3$N5!G=$O!"Hs(B
568     XHTML $BJ8=q$G$b;H$&$3$H$,$G$-$^$9!#<!$K<($9$N$O!"(B
569     SVG $B$r;H$$!"NP$N;M3Q7A$r$+$A$C$H$9$k$H;g$N;M3Q7A$,8=$l!"(B
570     $B;g$N;M3Q7A$r$+$A$C$H$9$k$H$=$l$,>CLG$9$k$H$$$&Nc$G$9!#(B</p>
571    
572     <pre class="XML"><code>&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox(0 0 40 5)
573     <em>xmlns:html="http://www.w3.org/1999/xhtml"</em>>
574     &lt;rect <em>html:repeat="template"</em> id="blob" x="<em>[blob]</em>" y="2" fill="purple" height="0.9" width="0.9"
575     <em>onclick="this.removeRepetitionBlock()"</em>/>
576     &lt;rect x="0" y="2" fill="green" height="0.9" width="0.9"
577     <em>onclick="document.getElementById('blob').addRepetitionBlockByIndex(null, 1)"</em>/>
578     &lt;/svg></code></pre>
579     </div>
580     </div>
581    
582     <div class="section">
583     <h3 id="repeatExamples"><span class="secno">3.7. </span><!--Examples-->$BNc(B</h3>
584    
585     <p><!--This section gives some more practical examples of repetition.-->$B$3$N@a$G$O!"(B
586     $BH?I|$N$h$j<B:]E*$JNc$r<($7$^$9!#(B</p>
587    
588     <div class="section">
589     <h4 id="repeatExample"><span class="secno">3.7.1. </span><!--Repeated rows-->$BH?I|9T(B</h4>
590    
591     <p><!--The following example shows how to use repetition templates to
592     dynamically add rows to a form in a table.-->$B<!$NNc$O!"(B
593     $BI=Cf$N%U%)!<%`$KF0E*$K9T$rDI2C$9$k$?$a$KH?I|?w7A$r$I$&;H$&$+$r<($7$F$$$^$9!#(B</p>
594    
595     <pre class="HTML"><code>&lt;!DOCTYPE html&gt;
596     &lt;html&gt;
597     &lt;head&gt;
598     &lt;title&gt;<!--Form Repeat Demo-->$B%U%)!<%`H?I|%G%b(B&lt;/title&gt;
599     &lt;/head&gt;
600     &lt;body&gt;
601     &lt;form action="http://software.hixie.ch/utilities/cgi/test-tools/echo" method="post" enctype="multipart/form-data"&gt;
602     &lt;table&gt;
603     &lt;thead&gt;
604     &lt;tr&gt;
605     &lt;th&gt;<!--Name-->$BL>A0(B&lt;/th&gt;
606     &lt;th&gt;<!--Number of Cats-->$BG-$N?t(B&lt;/th&gt;
607     &lt;th&gt;&lt;/th&gt;
608     &lt;/tr&gt;
609     &lt;/thead&gt;
610     &lt;tbody&gt;
611     &lt;tr repeat="0"&gt;
612     &lt;td&gt;&lt;input type="text" name="name_0" value="<!--John Smith-->$B;3EDB@O:(B"&gt;&lt;/td&gt;
613     &lt;td&gt;&lt;input type="text" name="count_0" value="2"&gt;&lt;/td&gt;
614     &lt;td&gt;&lt;button type="remove"&gt;<!--Delete Row-->$B9T$r:o=|(B&lt;/button&gt;&lt;/td&gt;
615     &lt;/tr&gt;
616     &lt;tr repeat="template" id="row"&gt;
617     &lt;td&gt;&lt;input type="text" name="name_[row]" value=""&gt;&lt;/td&gt;
618     &lt;td&gt;&lt;input type="text" name="count_[row]" value="1"&gt;&lt;/td&gt;
619     &lt;td&gt;&lt;button type="remove"&gt;<!--Delete Row-->$B9T$r:o=|(B&lt;/button&gt;&lt;/td&gt;
620     &lt;/tr&gt;
621     &lt;/tbody&gt;
622     &lt;/table&gt;
623     &lt;p&gt;
624     &lt;button type="add" template="row"&gt;<!--Add Row-->$B9T$rDI2C(B&lt;/button&gt;
625     &lt;button type="submit"&gt;<!--Submit-->$BDs=P(B&lt;/button&gt;
626     &lt;/p&gt;
627     &lt;/form&gt;
628     &lt;/body&gt;
629     &lt;/html&gt;
630     </code></pre>
631    
632     <p><!--Initially, two rows would be visible, each with two text input controls,
633     the first row having the values "John Smith" and "2", the second row
634     having the values "" (a blank text field) and "1". The second row is the
635     result of the (implied) <span><code><a
636     href="#repeat-start">repeat-start</a></code> attribute</span> adding a
637     repetition block when the document was loaded.-->$B$O$8$a!"(B
638     2$B$D$N9T$,2D;k>uBV$H$J$j$^$9!#$=$l$>$l(B2$B$D$NJ8>OF~NO@)8f;R$,$"$C$F!"(B
639     $B:G=i$N9T$OCM$,(B<q>$B;3EDB@O:(B</q>$B$H(B <q>2</q>
640     $B$G!"(B2$B$DL\$N9T$OCM$,(B <q></q> ($B6u$NJ8>OMs(B) $B$H(B <q>1</q> $B$G$9!#(B
641     2$B$DL\$N9T$O!"(B ($B0EL[$N(B)
642     <code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#repeat-start">repeat-start</a></code>
643     $BB0@-$K$h$j!"J8=q$,FI9~$^$l$?;~$KH?I|%V%m%C%/$,(B1$B$DDI2C$5$l$?7k2L$G$9!#(B</p>
644    
645     <p><!--If the "Add Row" button is pressed, a new row is added. The first such
646     row would have the index 2 (since there are already two repetition blocks
647     numbered 0 and 1) and so the controls would be named "name_2" and
648     "count_2" respectively.--><q>$B9T$rDI2C(B</q>$B%\%?%s$,2!$5$l$k$H!"(B
649     $B?7$7$$9T$,DI2C$5$l$^$9!#:G=i$KDI2C$5$l$?9T$O:w0zHV9f$,(B <code>2</code>
650     $B$H$J$j(B ($B4{$KHV9f$,(B <code>0</code> $B$H(B <code>1</code>
651     $B$NH?I|%V%m%C%/$,$"$k$+$i$G$9!#(B)$B!"@)8f;R$O$=$l$>$l(B <code lang="en">name_2</code>
652     $B$H(B <code lang="en">count_2</code> $B$H$$$&L>A0$K$J$j$^$9!#(B</p>
653    
654     <p><!--If the "Delete Row" button above is pressed, the row is removed.-->
655     <q>$B9T$r:o=|(B</q>$B%\%?%s$,2!$5$l$k$H!"$=$N9T$,:o=|$5$l$^$9!#(B</p>
656     </div>
657    
658     <div class="section">
659     <h4 id="nested"><span class="secno">3.7.2. </span><!--Nested repeats-->$BF~$l;R$NH?I|(B</h4>
660    
661     <p><!--The previous example does not demonstrate nested repeat blocks,
662     reordering repetition blocks, and inserting new repetition blocks in the
663     middle of the existing sequence, all of which are possible using the
664     facilities described above.-->$BA0$NNc$OF~$l;R$NH?I|%V%m%C%/$dH?I|%V%m%C%/$N=g=x8r49$d4{B8$NH?I|%V%m%C%/$N4V$X$N?7$7$$H?I|%V%m%C%/$NDI2C$NNc$r<($7$F$$$^$;$s$G$7$?$,!"(B
665     $B$3$l$i$O$9$Y$F@h=R$N5!G=$r;H$C$F<B8=$G$-$^$9!#(B</p>
666    
667     <p><!--This example shows nested repeats.-->$B$3$NNc$O!"(B
668     $BF~$l;R$NH?I|$r<($7$F$$$^$9!#(B</p>
669    
670     <pre class="HTML"><code>&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
671     &lt;head&gt;
672     &lt;title&gt;<!--Solar System-->$BB@M[7O(B&lt;/title&gt;
673     &lt;/head&gt;
674     &lt;body&gt;
675     &lt;form&gt;
676     &lt;h1&gt; <!--Solar system-->$BB@M[7O(B &lt;/h1&gt;
677     &lt;p&gt; &lt;label&gt; <!--System Name-->$BL>A0(B: &lt;input name="name"/&gt; &lt;/label&gt; &lt;/p&gt;
678     &lt;h2&gt; <!--Planets-->$BOG@1(B &lt;/h2&gt;
679     &lt;ol&gt;
680     &lt;li repeat="template" repeat-start="0" id="planets"&gt;
681     &lt;label&gt; <!--Name-->$BL>A0(B: &lt;input name="planet[planets].name" required="required"/&gt; &lt;/label&gt;
682     &lt;h3&gt; <!--Moons-->$B1R@1(B &lt;/h3&gt;
683     &lt;ul&gt;
684     &lt;li repeat="template" repeat-start="0" id="planet[planets].moons"&gt;
685     &lt;input name="planet[planets].moon[planet[planets].moons]"/&gt;
686     &lt;button type="remove"&gt;<!--Delete Moon-->$B1R@1$r:o=|(B&lt;/button&gt;
687     &lt;/li&gt;
688     &lt;/ul&gt;
689     &lt;p&gt;&lt;button type="add" template="planet[planets].moons"&gt;<!--Add Moon-->$B1R@1$rDI2C(B&lt;/button&gt;&lt;/p&gt;
690     &lt;p&gt;&lt;button type="remove"&gt;<!--Delete Planet-->$BOG@1$r:o=|(B&lt;/button&gt;&lt;/p&gt;
691     &lt;/li&gt;
692     &lt;/ol&gt;
693     &lt;p&gt;&lt;button type="add" template="planets"&gt;<!--Add Planet-->$BOG@1$rDI2C(B&lt;/button&gt;&lt;/p&gt;
694     &lt;p&gt;&lt;button type="submit"&gt;<!--Submit-->$BDs=P(B&lt;/button&gt;&lt;/p&gt;
695     &lt;/form&gt;
696     &lt;/body&gt;
697     &lt;/html&gt;
698     </code></pre>
699    
700     <p><!--Note that to uniquely identify each nested repeat (which is required
701     since the <code><a href="#add">add</a></code> buttons are dependent on IDs
702     to specify which template should have a block added), the IDs of the
703     nested templates are specified in terms of the ancestor template's ID,
704     using the index substitution feature.-->$B$=$l$>$l$NF~$l;R$NH?I|$r8GM-$K<1JL$9$k$?$a!"(B
705     $BF~$l;R$N?w7A$N<1JL;R(B
706     (<code class="HTML" lang="en"><a href="http://www.whatwg.org/specs/web-forms/current-work/#add">add</a></code>
707     $B%\%?%s$,$I$N?w7A$N%V%m%C%/$rDI2C$9$k$+$r;XDj$9$k$?$a$K<1JL;R$r;H$&$N$GI,MW$G$9!#(B)
708     $B$O@hAD$N?w7A$N<1JL;R$H:w0zHV9f$NCV49$N5!G=$r;H$C$F;XDj$7$F$$$k$3$H$KCm0U$7$F2<$5$$!#(B</p>
709    
710     <p class="note"><!--Since square brackets are not allowed in ID attributes in
711     XML, the above example cannot validate to an XML DTD. It is still
712     well-formed, however, and conformant to this specification. It is possible
713     to make a version that validates according to an XML DTD by using U+02D1
714     MODIFIER LETTER HALF TRIANGULAR COLON and U+00B7 MIDDLE DOT characters
715     instead of the U+005B OPENING SQUARE BRACKET and U+005D CLOSING SQUARE
716     BRACKET characters in the value of the second "<code>id</code>" attribute,
717     without any other changes.-->XML $B$G$O;M3Q3g8L$,(B
718     <code lang="en" class="XML">ID</code> $BB0@-$G$OG'$a$i$l$F$$$J$$$N$G!"(B
719     $B@h$NNc$O(B XML DTD $B$GBEEv$H$J$j$^$;$s!#$=$l$G$b!"(B
720     $B@07A<0$G!"$3$N;EMM$KE,9g$O$7$F$$$^$9!#(B XML DTD
721     $B$K>H$i$7$FBEEv$H$9$k$?$a$K!"(B2$BHVL\$N(B <code lang="en" class="HTMLa">id</code>
722     $BB0@-$NCM$G!"(B <code>U+005B</code>
723     <code class="charname" lang="en">OPENING SQUARE BRACKET</code> $B$H(B
724     <code>U+005D</code> <code class="charname" lang="en"
725     >CLOSING SQUARE BRACKET</code> $B$NBe$o$j$K(B <code>U+02D1</code>
726     <code class="charname" lang="en">MODIFIER LETTER HALF TRIANGULAR COLON</code>
727     $B$H(B <code>U+00B7</code> <code class="charname">MIDDLE DOT</code>
728     $B$r;H$&$3$H$,$G$-$^$9!#(B</p>
729     </div>
730    
731     </div>
732    
733     </div>
734    
735     </body>
736     </html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24