有在5.1.0.5一個有趣的缺陷(固定或更新版本)
,只有一個簡單的頁面不會造成任何核心 掛毯要加載的JavaScript庫(tapestry.js,prototype.js等)因此,表單甚至不支持提交。將驗證添加到表單中的字段可以解決此問題,但是如果您沒有難以處理的字段。
如果你甚至沒有在頁面中加載tapestry.js,那麼第一步是確保你正在做的事情會告訴你想要的框架。一種方法是調用RenderSupport#addScript。傳遞一個空字符串會被忽略,所以你可以在其中插入一個分號來實質上得到一個空操作。
@Inject
private RenderSupport renderSupport;
void setupRender() {
// non-blank addScript causes stack to get added
renderSupport.addScript(";");
}
接下來要做的事情會打電話給你getFormEventManager表單元素上初始化掛毯的形式,並確保該事件處理程序連接。
我也更新了TML等待DOM加載,所以你不要怪計時誤差:
<t:form t:id="myForm">
<t:submit/>
</t:form>
<script type="text/javascript">
Tapestry.onDOMLoaded(function() {
$('myForm').getFormEventManager(); // forces the form to start listening for submits
$("myForm").observe(Tapestry.FORM_PREPARE_FOR_SUBMIT_EVENT, function() {
alert("submitting");
});
alert("Dom loaded");
});
</script>
討厭的,而是固定在框架的更高版本。