1
当我看到Wicket模式窗口的HTML时,我看到一个表单。为什么在那里?为什么Wicket模式窗口中有窗体?
当我看到Wicket模式窗口的HTML时,我看到一个表单。为什么在那里?为什么Wicket模式窗口中有窗体?
ModalWindow的JavaScript产生一个<form>
支持下列用例:
+ Page
+ Form("f")
+ TextField("a")
+ ModalWindow("m")
+ Form("f2")
+ TextField("b")
当在浏览器中呈现,嵌套形式“F2”呈现为<div>
- 这是后话检票为你做,因为嵌套表单不是有效的HTML。
当打开时,ModalWindow删除其含有标记,并把它放入添加到文档主体上的<div>
:
<form wicket:id="f">
<input wicket:id="a" />
<div wicket:id="m">
<!-- markup removed -->
</div>
</form>
<div>
<form> <!-- generated form -->
<div wicket:id="f2">
<input wicket:id="b" />
</div>
</form>
</div>
没有产生形成的模态窗口内的输入不能通过Ajax提交。
请注意,这有一个顽皮的暗示: 即使你只是想使用模态窗口内的窗体,你仍然必须有一个窗体包装模态窗口。
没有它:
+ Page
# wrong - no wrapping form
+ ModalWindow("m")
+ Form("f2")
+ TextField("b")
... “F2” 将留<form>
其结果将有两个嵌套的表格无效的HTML:
<div wicket:id="m">
<!-- markup removed -->
</div>
<div>
<form> <!-- generated form -->
<form wicket:id="f2">
<input wicket:id="b" />
</form>
</form>
</div>
我觉得这种使用情况非常混乱。如果我在(或以任何其他方式提交)中输入ENTER键,将会提交哪个表格?用wicket:id =“f”或者自动生成的那个?如果我需要在模态中有一个表单,那么我会在周围提供我自己的
我在我的答案中添加了详细信息。我从不喜欢ModalWindow生成如此多的HTML,包括