我正在尝试获取当前关注的组件ID。为此,我使用了以下jQuery:
<script>
$(document).ready(function(){
$("*").focus(function(){
$('#hiddenInput').val($(this).attr('name'));
});
});
</script>
我有tabview
个标签,标签dynamic
属性设置为true
。当我切换到tab2时,jQuery不会被激活tab2的组件。我注意到没有为tab2的组件生成HTML源代码。我该如何解决这个问题?
下面给出的生成标记:
<div class="ui-tabs-panels">
<div id="j_idt76:j_idt77" class="ui-tabs-panel ui-widget-content ui-corner-bottom" role="tabpanel" aria-hidden="false">
<table cellpadding="5" cellspacing="5">
<tbody>
<tr>
<td><label> Customer ID</label></td>
<td>
<input id="j_idt76:j_idt82" name="j_idt76:j_idt82" type="text" value="0893000453 " size="45" readonly="readonly" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" />
<script id="j_idt76:j_idt82_s" type="text/javascript">PrimeFaces.cw('InputText','widget_j_idt76_j_idt82', id:'j_idt76:j_idt82'});</script>
</td>
</tr>
</tbody>
</table>
</div>
<div id="j_idt76:j_idt147" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-helper-hidden" role="tabpanel" aria-hidden="true"></div>
</div>
答案 0 :(得分:1)
<script>
$(document).ready(function(){
$("body").delegate(":input", "focus", function(){
$('#hiddenInput').val($(this).attr('name'));
});
});
</script>
We can achieve this using delegate function.
答案 1 :(得分:0)
下面给出的tabview标记......
我注意到了几件事,
1.即使我单击tab2,也不会生成tab2中组件的标记,因此无法访问该组件。
2.当我使用Ajax更新我的表单时,我无法访问在ajax调用之前可访问的组件。
<div class="ui-tabs-panels">
<div id="j_idt76:j_idt77" role="tabpanel" aria-hidden="false">
<table>
<tbody>
<tr>
<td><input id="j_idt76:j_idt82" name="j_idt76:j_idt82" type="text" /></td>
Other components....
</tr>
</tbody>
</table>
</div>
<div id="j_idt76:j_idt147" role="tabpanel" aria-hidden="true"></div>
</div>
在上面的代码中,生成Tab1(j_idt76:j_idt77)中组件的标记,但不生成Tab2(j_idt76:j_idt147)。