我想在提交后关闭这个模式窗口。我已经这样做了: fu-6ren">
gpt4 book ai didi

javascript - JS 在控制台中可以工作,但在代码中不起作用

转载 作者:行者123 更新时间:2023-12-03 02:31:41 25 4
gpt4 key购买 nike

我有这个按钮,它以简单的形式调用模式窗口。

<aui:button-row>
<a style="float: left" onclick="ITD.robomarket.activateKeyModalWindowFunction(
'${activateKeyURL}', '<%=LanguageUtil.get(pageContext, "key-activating")%>', '400', '334')" class="btn btn-green"> </a>
</aui:button-row>

我想在提交后关闭这个模式窗口。我已经这样做了:

function closeModal () {
var id = 'robomarket-activate-key-modal-window'
var dialog = Liferay.Util.Window.getById(id);
dialog.destroy();
}

我在 .jsp 中调用这个函数:

<script>
$(document).ready(function() {
closeModal();
});
</script>

问题是这不起作用,但是当我在控制台中编写此行时,模式窗口会关闭!有什么问题?

最佳答案

您必须从打开模式的 JSP 中调用 closeModal。例如,A.jsp 有一个在模式对话框中打开 B.jsp 的链接,那么您希望在提交表单时关闭 B.jsp

这是一个可能的实现:

A.jsp中:

    <portlet:renderURL var="popupUrl" windowState="<%=LiferayWindowState.POP_UP.toString()%>">
<portlet:param name="mvcPath" value="/B.jsp"/>
</portlet:renderURL>

<aui:button href="${popupUrl}" useDialog="true" value="Open in popup" />

在 A.jsp 的底部:

<aui:script>
Liferay.provide(window, 'closePopup', function(dialogId) {
var A = AUI();
var dialogId = A.one('div.dialog-iframe-modal').get("id");
var dialog = Liferay.Util.Window.getById(dialogId);
dialog.destroy();
});
</aui:script>

然后在B.jsp

你必须对开启者说关闭对话框,这是一个可能的实现:

<portlet:actionURL name="/submitForm" var="submitFormURL">
<portlet:param name="action" value="submitForm" />
</portlet:actionURL>

<aui:form action="<%= submitFormURL %>" method="post" name="fm" onSubmit='<%= "event.preventDefault(); " + renderResponse.getNamespace() + "submitForm();" %>'>
...the form

<aui:button name="submitForm" type="submit"/>

</aui:form>

B.jsp页面的底部:

<script>
function <portlet:namespace/>submitForm(){
AUI().use('aui-io-request', function(A) {
var url = '<%=submitFormURL.toString()%>';
A.io.request(
url,
{
method: 'POST',
form: {id: '<portlet:namespace/>fm'},
on: {
success: function() {
Liferay.Util.getOpener().closePopup('dialog');
}
}
}
);
});
}
</script>

希望对你有帮助

问候阿诺

关于javascript - JS 在控制台中可以工作,但在代码中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48708056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com