JSF2.0中的JavajQuery
我是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>
输入没有任何变化,我的代码有什么问题
# 1 楼答案
萨克
执行网页和viewsource以获得相同的结果
您将为
<input type='text' id='something'
找到的任何ID向Jquery添加相同的id
var Element=“#某物”
# 2 楼答案
jQuery不能在服务器端使用JSF组件树。相反,它在客户端使用HTMLDOM树。对于JSF,您应该在编写jQuery时查看JSF生成的HTML输出。当您遇到像
pbGfb9435b3_2d720d_2d478d_2d8183_2d657b3839216b_j_id1:j_idt5:email
这样不可预测的HTML元素ID时,您可能运行的是JSFPortlet而不是servlet。pgXxx
ID前缀仅出现在portlet上作为建议,不要按ID选择非唯一元素,而是按类名选择
例如
与
(我擅自修复了糟糕的变量名;它们不应该以大写字母开头,CSS选择器不是元素)
另请参见: