gpt4 book ai didi

java - JSF 2.0 中的 Jquery

转载 作者:行者123 更新时间:2023-12-01 23:47:06 24 4
gpt4 key购买 nike

我是 Jquery 的新手,我想在 jsf 中做一个占位符,如下所示:http://niklaskoehler.de/demos/vordefinierter-text/ 。我有下一个代码:

<head>
<script type="text/javascript">
jQuery(document).ready(function() {

var $ = jQuery;
var Element = "#email";
var InputText = "Placeholder demo";

$(Element).val(InputText);

alert("sup bro"); //this alert works

$(Element).bind('focus',function(){
$(this).addClass('focus');
if($(this).val()==InputText){

$(this).val('');
}
}).bind('blur',function(){
if($(this).val()==""){
$(this).val(InputText);
$(this).removeClass('focus');
}
});
});


</script>

</head>

这是我的表格:

<h:form>
<div class="form-item">
<h:inputText id="email" title="Email" value="#{UserAction.email}"/>
</div>
</h:form>

输入没有任何反应,我的代码出了什么问题?

最佳答案

jQuery 不适用于服务器端的 JSF 组件树。相反,它在客户端使用 HTML DOM 树。对于 JSF,您应该在编写 jQuery 时查看 JSF 生成的 HTML 输出。当您遇到不可预测的 HTML 元素 ID(例如 pbGfb9435b3_2d720d_2d478d_2d8183_2d657b3839216b_j_id1:j_idt5:email)时,您可能正在运行 JSF portlet 而不是 servlet。 pgXxx ID 前缀仅出现在 portlet 上。

忠告一下,不要通过 ID 选择非唯一元素。改为按类名称选择。

例如

<h:inputText ... styleClass="email" />

var selector = ".email";
var inputText = "Placeholder demo";
$(selector).val(inputText);

(我冒昧地修复了糟糕的变量名称;它们不应该以大写字母开头,并且 CSS 选择器不是一个元素)

另请参阅:

关于java - JSF 2.0 中的 Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16858805/

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