问题描述
在我们的(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 的更多信息。