我有一个带数据表的弹出对话框,我想在过滤器inputText字段中没有焦点。我想专注于此表下的按钮。 我试过这个:
<p:focus id="focus" for="buttonFocus" context="dialog"/>
<p:dialog id="dialog" header="Выбор организации" widgetVar="vDialog" modal="true" resizable="false">
<p:dataTable
dblClickSelect="true"
id="table"
var="record"
value="#{myBean.tableList}"
rowKey="#{record.waId}"
filteredValue="#{myBean.filteredList}"
lazy="true"
>
<p:column headerText="Name" filterBy="#{recordp.name}" sortBy="#{recordp.name}">
#{record.name}
</p:column>
</p:dataTable>
<p:commandButton id="buttonFocus" actionListener="#{myBean.fill}"/>
</p:dialog>
它没有帮助。 那么,在这种情况下如何设置对按钮的关注呢?
答案 0 :(得分:1)
我找到了一些建议。
首先第一个,对我有用的是:
<script type="text/javascript">
PrimeFaces.widget.Dialog.prototype.applyFocus = function() {
var firstInput = this.jq.find('#buttonFocus');
firstInput.focus();
}
</script>
此方法不需要p:focus。并且不要忘记将prependId =“false”添加到表单中,否则id将会改变。
第二仅适用于输入元素(不使用按钮):
<script type="text/javascript">
PrimeFaces.widget.Dialog.prototype.applyFocus = function() {
}
</script>
这里你需要p:focus元素,但就像我说的那样只适用于输入。
如果你有正确版本的primefaces(未经过测试),你可以查看这个blog的第三个解决方案