【问题标题】:How to copy the value of a yform to an other field如何将 yform 的值复制到其他字段
【发布时间】:2021-06-01 20:01:52
【问题描述】:

在我们的(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 调用这个函数。

【问题讨论】:

    标签: javascript hybris orbeon


    【解决方案1】:

    这很可能通过 jsp 文件来完成。那里你有所有需要的数据,所以你很可能只需要复制你需要的那个字段。

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

    【讨论】:

    • 感谢您的意见,我更新了我的帖子。我现在有了一个可以工作的选择器,但仍然存在一些问题。
    • 您能否更新 jsp 文件以便为该元素提供 ID?然后您可以使用该 ID 查询文档。奇怪的是,在你检查了那个特定的元素之后你让它工作了,也许它当时没有初始化?尝试将您的查询选择器修改为更通用,它还将包含其他字段,但您可以稍后过滤它们。例如,仅查询“输入”并查看数组是否包含您需要的内容。您也可以在此处粘贴元素 (html),以便我们一起构建自定义查询。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多