【问题标题】:Listening on Apache Tapestry form events监听 Apache Tapestry 表单事件
【发布时间】:2022-01-12 22:13:44
【问题描述】:

我是一名后端开发人员,最近继承了几个遗留的 Apache Tapestry 系统。我在 Tapestry 方面的技能是我对 javascript 媒体的了解。

我想在提交之前禁用提交按钮以避免多次提交。 一个很简单的

$(document).ready(function () {
    $("#form").submit(function () {
        $("#submitbutton").attr("disabled", true);
        return true;
    });
});

因为提交事件是在 Tapestry 进行客户端验证之前传播的,所以我可能会在验证失败的 submint 尝试中禁用按钮。

this 问题上,我了解到Tapestry 也传播自己的事件,如果我可以在tapestry:formprocesssubmit 上收听,那可能会解决我的问题。

我有我的CreateContract.tml 文件,其中包含已经工作的表单、字段和按钮,我有我的CreateContract.java 文件

@Import(library = {
            "context:js/jquery.mask.min.js",
            "context:js/maintain-contracts.js",
            "context:js/zone-overlay.js"},
            stylesheet = "context:layout/zone-overlay.css")

还有我的maintain-contracts.js 文件

$(document).ready(function () {
    $("#form").on('tapestry:formprepareforsubmit', function () {
        console.log("I want to arrive here!");
    });
});

但它不起作用。 在this 邮件列表线程上,我看到人们讨论非常相似的问题,但他们以不同的方式倾听事件,我不太了解。

我应该在初始化器中创建监听器吗?

我将事件称为'tapestry:formprepareforsubmit' 而不是Tapestry.FORM_PREPARE_FOR_SUBMIT_EVENT,因为在我的maintain-contracts.js 和我的控制台上,Tapestry 变量都是空的 - 为什么会这样?

.on.bind.observe 三分法呢?

first links 的问题已使用ProptypeJS Class.create 解决,但我认为我无权访问。

我是不是搞错了?

谢谢,感谢您的帮助。

【问题讨论】:

    标签: javascript jquery tapestry


    【解决方案1】:

    不是分析你的方法为什么行不通的原因,而是一个有用的推荐:

    Tapestry JumpStart 的创建者 Geoff Callender 对如何使用 mixin 避免重复提交表单进行了出色的描述。

    http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/creatingmixins1

    【讨论】:

      【解决方案2】:

      在阅读 Tapestry 的源代码后,我发现该事件不是称为 tapestry:formprepareforsubmit,而是 t5:form:prepare-for-submit,尽管我在任何地方都没有找到关于它的文档。

      所以

      $(document).ready(function () {
          $("#form").on('t5:form:prepare-for-submit', function () {
              console.log("I want to arrive here!");
          });
      });
      

      完美运行。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多