2017-10-26 4 views
0

Es scheint einen Fehler in Primefaces v6.1 zu geben, wenn p: selectOneMenu verwendet wird, behält es den Fokus bei der Anzeige eines modalen Dialogs. Mit den Pfeiltasten auf/ab können Sie die selectOneMenu-Auswahl ändern. Wenn ich p: selectOneMenu mit h: selectOneMenu ersetze, funktioniert es wie erwartet. Irgendeine Idee, wie a den Fokus auf das Feld input1 verschieben kann?p: selectOneMenu behält den Fokus

<?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

Sie meinen, dass selbst die 'focus =" input1 "' nicht hilft? – Kukeltje

+0

@Kukeltje Richtig, es funktioniert nicht einmal mit Fokus = "Eingang1". – tak3shi

Antwort

0

Ich habe das behoben, indem ich einen verzögerten Aufruf von focus() hinzugefügt habe.

onchange="PF('dlg').show();setTimeout(function() { $('#form:input1').focus() },10)" 
Verwandte Themen