【发布时间】:2013-02-18 16:50:50
【问题描述】:
我想使用 jQuery 覆盖 p:inputText (commentInput) 组件的 onblur() 和 onfocus() 方法。但是我想我正在努力获取这个组件的固定 Html ID。到目前为止我试过了:
jQuery(document).ready(function() {
$(document.getElementById("[#{p:component('commentInput')}]")).onblur(function() {
$(this).css({'background-color':'#DFD8D1'});
});
});
或者:
jQuery(document).ready(function() {
$("[id='#{p:component('commentInput')}']").onblur(function() {
$(this).css({'background-color':'#DFD8D1'});
});
});
两者都给出相同的结果:Uncaught TypeError: Object [object Object] has no method 'onblur'。
Xhtml代码类似这样:
<h:form id="dtForm">
<p:outputPanel id="dataTablePanel">
<p:dataTable id="dataTable">
<p:column id="column">
<p:panel>
<p:inputText id="commentInput">
</p:inputText>
</p:panel>
</p:column>
</p:dataTable>
</p:outputPanel>
</h:form>
我在使用 inputText 组件时遇到了另一个问题:
<p:inputText id="commentInput" onkeypress="if (event.keyCode == 13) {onchange(); return false;}" required="#{not empty statusBean.newComment}">
<f:ajax event="change" listener="#{statusBean.test}" />
</p:inputText>
它以意想不到的方式触发事件;假设光标在 inputText 中并输入 sth。并单击页面中的其他位置,组件会触发 ajax 事件,而它不应该这样做。我认为这个组件不适合像在 Facebook 中那样获得对状态的评论。
【问题讨论】:
标签: jquery jsf jsf-2 primefaces