JSF正在将输入字段的ID设置为search_form:expression.我需要在该元素上指定一些样式,但该冒号看起来像浏览器的伪元素的开头,因此它被标记为无效并被忽略.反正有没有逃过冒号或什么?
input#search_form:expression {
///...
}
Run Code Online (Sandbox Code Playgroud) 我一直在使用JSF处理一个简单的Java EE项目.
<h:form id="phoneForm">
<h:dataTable id="phoneTable">
</h:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)
我试图通过设置CSS #phoneTable { ... },但它不起作用.在客户端检查HTML源代码时,JSF生成的HTML表格似乎以形式获取客户端ID id="phoneForm:phoneTable".我无法应用CSS via #phoneForm:phoneTable { ... },因为冒号表示伪选择器的开始并导致错误.
我怎么能在CSS选择器中使用它呢?
我正在尝试使用PrimeFaces和JSF组件实现jQuery,但它无法正常工作.当我尝试用HTML标签做同样的事情时,它正常工作.
以下是带有HTML标记的代码,它可以与jQuery一起使用:
<input type="checkbox" id="check2"></input>
<h:outputText value="Check the box, if your permanent address is as same as current address."></h:outputText>
<h:message for="checkbox" style="color:red" />
Run Code Online (Sandbox Code Playgroud)
同
$("#check2").change(function() {
if ($("#check2").is(":checked")) {
$("#p2").hide();
} else {
$("#p2").show();
}
});
Run Code Online (Sandbox Code Playgroud)
以下是使用PrimeFaces/JSF的代码,它与jQuery无法正常工作:
<p:selectManyCheckbox >
<f:selectItem itemLabel="1" value="one" id="rad" ></f:selectItem>
</p:selectManyCheckbox>
Run Code Online (Sandbox Code Playgroud)
同
$("#rad").change(function() {
if ($("#rad:checked").val() == "one") {
$("#p2").hide();
} else {
$("#p2").show();
}
});
Run Code Online (Sandbox Code Playgroud) 有活跃的JSF(或Primefaces)用户可以解释为什么默认情况下会发生这样的原因:为什么没有人对此做任何事情:
<p:commandLink id="baz" update=":foo:boop" value="Example" />
Run Code Online (Sandbox Code Playgroud)
哪个生成的标记在没有hacks的情况下无法在JavaScript或CSS中使用,通常应被视为无效:
<a href="javascript:void(0);" id=":foo:bar:baz">Example</a>
Run Code Online (Sandbox Code Playgroud)
id=":bar:baz:foo"此处的属性包含冒号,这些冒号不是此属性的有效字符,至少从CSS角度来看.
虽然该属性可能根据规范有效,但它无法与真实的JavaScript和CSS实现一起使用.
简而言之,idJSF中的默认属性生成无法用于前端开发.