提交表单(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>
称为 AFTER onclick
,因此在选择组件后呈现表单,并清除焦点。
表单呈现后如何调用我的函数?
更新:(例如我试过)
- 添加
onevent="myFunc();"
到f:ajax
=> 导致刷新页面 - 添加
onevent="myFunc()"
到=> 与属性f:ajax
相同的行为onclick
- 接下来
f:ajax
是onevent
attr。=> 还是一样
update2(它应该如何工作):
- 提交按钮是ajax调用
- 根据需要清洁表格
- 专注于适当的领域(取决于一些用户选择的因素)