gpt4 book ai didi

Jquery 使用 JSF 隐藏文本

转载 作者:行者123 更新时间:2023-12-01 01:18:26 25 4
gpt4 key购买 nike

我是 JQuery 新手。我正在尝试在 JSF 中使用 jQuery 来隐藏和显示组件。虽然使用 JSF 可以轻松实现,但我的要求仍然是使用 jQuery 来实现。

但我无法隐藏任何组件。代码片段是:-

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JQuery Effects</title>
<script type="text/javascript" src="script/jquery-1.7.1.js" >

function showSuccess()
{
jquery("#formId\\:showLinkId").click(function(){
jquery("#formId\\:success").hide('slow',function(){
alert('Hide Done');
});
});
}
</script>

</head>

<body>
<f:view>
<h:form id="formId">
<rich:panel header="Jquery" style="position: relative; width: 350px;">
<h:commandButton id="showLinkId" value="Click Here" onclick="showSuccess()" />

<h:outputLabel id="success" value="DONE" ></h:outputLabel>
</rich:panel>
</h:form>
</f:view>
</body>
</html>

但是在 GUI 上看不到任何效果。脚本文件保存在 WebContent/script 中。

我什至尝试在页面之间包含脚本,但再次没有用

请指导我..

最佳答案

至少有4个问题:

  1. 您需要在单独的 <script> 中声明函数元素而不是加载脚本文件的元素。

  2. 函数名称jquery()是错的。应该是jQuery() .

  3. 期间onclick您正在调用一个函数,该函数又将一个新的单击事件处理程序附加到该按钮,但这根本不会被调用。

  4. <h:commandButton>默认情况下会触发 POST 请求,但您不会以任何方式阻止它。

基本上有两种方法可以解决您的问题:

  1. 直接在showSuccess()中调用隐藏函数即可函数并在 onclick 中返回 false。

    <script type="text/javascript" src="script/jquery-1.7.1.js" ></script>
    <script type="text/javascript">
    function showSuccess() {
    jQuery("#formId\\:success").hide('slow',function() {
    alert('Hide Done');
    });
    }
    </script>

    ...

    <h:form id="formId">
    <rich:panel header="Jquery" style="position: relative; width: 350px;">
    <h:commandButton id="showLinkId" value="Click Here" onclick="showSuccess(); return false;" />
    <h:outputText id="success" value="DONE" />
    </rich:panel>
    </h:form>
  2. 删除 onclick 函数并在文档加载后绑定(bind)事件处理程序。

    <script type="text/javascript" src="script/jquery-1.7.1.js" ></script>
    <script type="text/javascript">
    jQuery(document).ready(function() {
    jQuery("#formId\\:showLinkId").click(function() {
    jQuery("#formId\\:success").hide('slow',function() {
    alert('Hide Done');
    });

    return false;
    });
    });
    </script>

    ...

    <h:form id="formId">
    <rich:panel header="Jquery" style="position: relative; width: 350px;">
    <h:commandButton id="showLinkId" value="Click Here" />
    <h:outputText id="success" value="DONE" />
    </rich:panel>
    </h:form>

请注意,这些组件不一定是 JSF 组件。以下内容应该同样有效。

<script type="text/javascript" src="script/jquery-1.7.1.js" ></script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#showLinkId").click(function() {
jQuery("#success").hide('slow',function() {
alert('Hide Done');
});
});
});
</script>

...

<h:form id="formId">
<rich:panel header="Jquery" style="position: relative; width: 350px;">
<button id="showLinkId">Click Here</button>
<span id="success">DONE</span>
</rich:panel>
</h:form>

关于Jquery 使用 JSF 隐藏文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8454705/

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