在底层表单中制作 Liferay 7 弹出填充值

Make Liferay 7 popup fill value in underlying form

我有一个 Liferay portlet,它有一个表单(正常 <form> 但我可以将其更改为 <aui:form>)。

此表单有一个只读文本输入字段(比方说 fruit)和一个 link 打开一个让用户选择水果的弹出窗口。

如何从弹出窗口修改基础表单中的 fruit 字段值?

您可以使用 liferay alloy UI 同样。 本教程可能会有所帮助 https://alloyui.com/examples/color-picker/popover

我认为一个好的方法是使用事件。

您需要在表单页面中监听一个事件并从弹出窗口触发该事件。

表单页面:

Liferay.on('eventName', function(e){
  //e.selectedFruit
});

在弹出窗口中:

Liferay.fire('eventName', {selectedFruit: 'orange'});

当然要慎重选择事件名称,避免冲突

例如,您可以在其前面添加 portlet 名称空间并将该事件名称作为参数发送到弹出窗口。