用户在<h:inputText>
字段中输入字符并按“Enter”按钮后,我会尝试打开对话框。
<h:inputText>
旁边有一个<p:commandLink>
,按下回车按钮后会打开对话框。
<h:inputText>
位于<p:dataTable><p:column>
内,每行需要相同的行为。该对话框应该根据我传递的行索引打开。
<p:dataTable scrollHeight="100" id="resourcetable"
value="#{myViewITBean.resourcelist}" scrollable="true"
rowIndexVar="index" var="row">
<p:column headerText="Del" width="10" style="width:10px">
<h:selectBooleanCheckbox value="#{row.deleteFlag}" />
</p:column>
<p:column headerText="ATTUID" width="200" style="width:200px">
<h:panelGroup
rendered="#{myViewITBean.redercomponent == false}">
<h:inputText value="#{row.attuid}" id="attuid"
onkeydown="if (event.keyCode == 13)
var columnNumber = $(this).index();
jQuery('#issuesandtasksform\\:resourcetable\\:'+columnNumber+'\\:openpopup').focus().click();" />
<p:commandLink id="openpopup"
actionListener="#{myViewITBean.showAttuIdSearchPopUp}"
update=":showAttuIdSearchPopUp :growl :error">
<f:attribute name="index" value="_#{index}" />
<h:graphicImage library="images" name="sbox1.gif" />
</p:commandLink>
</h:panelGroup>
<h:outputLabel value="#{row.attuid}" style="width:200px"
rendered="#{myViewITBean.redercomponent == true}" />
</p:column>
检查<h:inputText onkeydown>
。 jQuery代码在每一行传递相同的索引,而我需要我选择的行的索引。我怎样才能做到这一点?
答案 0 :(得分:1)
$(this).index()
返回HTML元素相对于其父元素的索引,而不是行索引。您已将行索引变量声明为rowIndexVar="index"
。只需使用它。
onkeydown="if (event.keyCode == 13) $('#issuesandtasksform\\:resourcetable\\:#{index}\\:openpopup').click()"
但是,通过$.next()
抓取下一个HTML元素可能更容易,因为<a>
生成的HTML <p:commandLink>
元素是HTML <input>
的下一个兄弟由<h:inputText>
生成的元素。
onkeydown="if (event.keyCode == 13) $(this).next().click()"