2

我想在提交对话框时隐藏我的图标/按钮...当我将图标/按钮放在里面时,我的代码停止工作<h:form>

这是我的图标的代码

<h:outputLink id="loginLink" value="javascript:void(0)"
                onclick="dlg.show()">
            <p:graphicImage value="/images/logo.png" />
</h:outputLink>

这是对话框的代码

<p:dialog id="dialog" header="Login" widgetVar="dlg">
    <h:form>
        <p:commandButton value="Login"
                oncomplete="handleLoginRequest(xhr, status, args)" />
    </h:form>
</p:dialog>

现在这是我的脚本

<script type="text/javascript">
function handleLoginRequest(xhr, status, args) {
        dlg.hide();
    jQuery('#loginLink').fadeOut();
    alert("This is working fine");
}
</script>

这样一切正常..alert("This is working fine");工作正常,我的图标也消失了....

但是当我将我的图标放在里面时,<h:form></h:form>图标不会淡出(脚本工作正常但无法到达我的图标里面<h:form>

前任:

<h:form>
    <h:outputLink id="loginLink" value="javascript:void(0)"
            onclick="dlg.show()">
        <p:graphicImage value="/images/logo.png" />
    </h:outputLink>
</h:form>

这样我就面临问题:(

PS:使用<h:form>对我来说是必须的,因为我要把我的代码放在<p:menuitem>需要放在里面的地方<h:form>

4

2 回答 2

2

感谢您的回复:) 下面的代码对我来说很好

<h:form id="loginForm">

在 JavaScript 中

jQuery('#loginForm').fadeOut();

(#id ofform代替 #id of button/link

这样我可以隐藏带有图标/按钮的完整表单......

实际上,当我放置按钮/链接时,按钮<h:form>id 内的图标对 javaScript 不可见

当我给 id<h:form>并隐藏整个表单而不是单个组件(按钮)时,它对我来说很好:)

我会试试这个,<p:menutem/>希望它在那里能正常工作......

于 2012-08-24T09:22:47.700 回答
1

您可以仅使用以下命令仅隐藏表单中的元素,而不是隐藏完整的表单:

<h:form id="loginForm">
    <h:outputLink id="loginLink" />
</h:form>

<script type="text/javascript">
    function handleLoginRequest(xhr, status, args) {
        dlg.hide();
        $("[id='loginForm:loginLink']").fadeOut();
    }
</script>

在上面的例子中,jQuery 对 id 中的“:”进行了转义。

您还可以使用 JSF 的绑定:

<h:form>
    <h:outputLink binding="#{loginLink}"/>
</h:form>

<script type="text/javascript">
    function handleLoginRequest(xhr, status, args) {
        dlg.hide();
        $("[id='#{loginLink.clientId}']").fadeOut();
    }
</script>

选择你的选择;-)

于 2012-08-25T10:45:55.213 回答