使用p:selectOneMenu时,Primefaces v6.1中似乎存在一个错误,它在显示模式对话框时保持焦点。您可以使用向上/向下箭头键更改selectOneMenu选项。当我用h:selectOneMenu替换p:selectOneMenu时,它按预期工作。知道如何将焦点移动到input1字段吗?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
</h:head>
<h:body>
<h:form id="form">
<!-- PF('statusWidget').blur();document.activeElement.blur(); -->
<p:selectOneMenu id="status" widgetVar="statusWidget"
onchange="PF('dlg').show();" value="test1">
<f:selectItem itemValue="test1" itemLabel="TEST_1"/>
<f:selectItem itemValue="test2" itemLabel="TEST_2"/>
<f:selectItem itemValue="test3" itemLabel="TEST_3"/>
</p:selectOneMenu>
<!-- onShow="document.activeElement.blur();" -->
<p:dialog widgetVar="dlg" modal="true" focus="input1">
<p:inputText id="input1" widgetVar="test"/>
</p:dialog>
</h:form>
</h:body>
</html>
答案 0 :(得分:0)
我通过添加对focus()的延迟调用来修复此问题。
onchange="PF('dlg').show();setTimeout(function() { $('#form:input1').focus() },10)"