【发布时间】:2012-11-12 11:32:08
【问题描述】:
我正在尝试在提交表单(ajax 调用)后选择并关注所选组件 ID。
<script>
var myFunc = function() {
document.getElementById('form:#{bean.componentId}').focus();
document.getElementById('form:#{bean.componentId}').select();
};
$(document).ready(function() {
myFunc();
});
</script>
<h:form id="form">
<h:commandButton action="#{bean.save}" onclick="return myFunc();" ...>
<f:ajax execute="@form" render="@form"/>
</h:commandButton>
...
</h:form>
此解决方案有效,但问题是 <f:ajax> 在 onclick 之后被调用,因此在选择组件后呈现表单,并清除焦点。
如何在表单呈现后调用我的函数?
更新:(例如我试过)
- 将
onevent="myFunc();"添加到f:ajax=> 导致页面刷新 - 将
onevent="myFunc()"添加到f:ajax=> 与onclick属性相同的行为 - 下一个
f:ajax和oneventattr。 => 还是一样
update2(应该如何工作):
- 提交按钮是ajax调用
- 根据需要清理表单
- 关注适当的字段(取决于某些用户选择的因素)
【问题讨论】:
-
primefaces 命令按钮和richfaces 命令按钮中有一个“未完成”属性。