我想使用 jQuery覆盖p:inputTextonblur()
(commentInput) 组件的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 或某事中那样获得对状态的评论。