如何将 yform 的值复制到其他字段

问题描述

在我们的(hybris)商店中,一些产品有一个 yform 来总结产品的各个部分。是否有一种简单的方法可以将 sum 字段的值(自动)复制到另一个字段中,例如 productquantity(无 yForm)? 我想我需要 javascript,但是 sumfield 的 id 是生成的,所以我不知道如何获得总和。我的 Javascript 能力也很有限...

更新:

为了得到值,我使用了这部分代码

copyYFormValuetoProductQuantity : function() {
    var copyText = document.querySelector('input[id*="sum"]').value
    if (copyText > 0 && copyText != null)
        {
        //do stuff
        }
  console.log("copied value: " + copyText)

},

但是这一行

document.querySelector('input[id*="sum"]').value

返回空值。如果我在浏览器控制台中使用它,它也会返回 null。但是在我检查了元素后,它可以工作并返回我想要的值。所以我想我在这里遗漏了一些 JS 基础知识,而且对象之前还没有准备好?

顺便说一句:我用 keydown-eventlistener 调用这个函数

解决方法

这很可能可以从 jsp 文件中完成。您拥有所需的所有数据,因此您很可能只需要在需要的地方复制该字段。

如果您在此处添加一些代码示例,我们还可以为您提供更多帮助(那个 yform 到底是什么?)。如果您很难找到代码中创建/添加的特定 yform 的位置,那么尝试搜索 html 的应用类总是值得的(搜索整个项目,看看您找到了什么)。

,

据我了解您的问题,您是说要将名为 sum 的 yForm 字段的值复制到名为 productquantity 的非 yForm 字段中,并且您专门询问如何从 JavaScript 访问 yForm 字段的值。如果我理解正确,您可以通过调用以下 JavaScript API 来实现:

ORBEON.xforms.Document.getValue("sum");

您可以在 Client-side JavaScript API 上找到有关此 API 和其他相关 API 的更多信息。