我无法弄清楚为什么它不提交表单,而只是跳过了弹出窗口。我尝试了其他解决方案,但失败了。
我遇到的第一个问题是提交后,它将加载到同一弹出窗口上,而不是加载到父portlet上,并且提交后将不会关闭弹出窗口。单击提交按钮时,我能够解决关闭弹出窗口的问题,但不会提交表单。
在弹出模式中:
<form action="<%= actionURL %>" id="formModal" name="formModal">
// all input fields here
<button name="submitBtnModal" id="submitBtnModal" type="submit">
</form>
<aui:script use="liferay-util-window">
A.one('#submitBtnModal').on('click', function(event) {
document.formModal.submit(); // cannot submit form
Liferay.Util.getOpener().closePopup('closedialog'); // will proceed to close pop up
Liferay.Util.getOpener().refresh(); // can refresh parent page
});
</aui:script>
解决方案已尝试但不起作用:
已从<form> to <aui:form>
将类型更改为按钮,并在onclick提交按钮时添加一个JavaScript函数onSubmitModal()。
function onSubmitModal(){document.getElementById(“ formModal”)。submit(); }
试图在<aui:script>
在调试时,后端没有问题。日志上也没有错误。只是它不会提交并且无法调用表单中的<%= actionURL =>。
我无法弄清楚为什么在尝试了所有这些解决方案后仍不提交表单。
我的预期结果是提交表单后,它将调用<%= actionURL%>,获取所有这些输入字段数据,并在关闭后弹出并刷新父页面。
更新: 我已经解决了这个问题。感谢您尝试提供帮助的人。我将稍后发布我的解决方案,以供其他参考。