表格观察提交不起作用?

| 我已经读过很多遍了,这是提交表单时添加客户端回调的推荐方法,但是它对我不起作用:
<t:form t:id=\"myForm\" id=\"myForm\">
    <t:submit />
</t:form>

<script type=\"text/javascript\">
    $(\"myForm\").observe(Tapestry.FORM_PREPARE_FOR_SUBMIT_EVENT, function() {
        alert(\"submitting\");
    });
    alert(\"listening\");
</script>
有人可以指出我做错了什么吗? 我正在使用挂毯5.1.0.5     
已邀请:
        5.1.0.5中有一个有趣的缺陷(已在较新版本中修复) 仅包含一个简单页面不会导致任何核心 Tapestry的javascript库要加载(tapestry.js,prototype.js等),因此表单甚至都没有钩住onSubmit。向表单中的字段添加验证可以解决此问题,但是如果您没有一个很难的字段。 如果您甚至没有在页面中加载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>
令人讨厌的,但在更高版本的框架中已修复。     

要回复问题请先登录注册