2017-02-14 3 views
0

Ich benutze Funktionalität wo, wenn Validierung Fehler kommt dann goto Link erzeugt eine ID der erforderlichen Komponente mit Fokus() auf der Oberseite der Seite. Mit einem Klick auf diesen Link wird die gewünschte Komponente hervorgehoben. Jetzt funktioniert es, wenn der Fehler in der gleichen Registerkarte ist. Aber erste Registerkarte ist aktive Fokusfunktion, die nicht das erforderliche Textfeld in der dritten Registerkarte zeigt.Javascript Focus() funktioniert nicht von Tab1 zu Tab2 in Primzahlen

void encodeGotoLabel(FacesContext context, UIComponent component, ResponseWriter writer, 
      FacesMessage msg) throws IOException { 
      String id = getid(context, msg); 
      if (id != null && !FacesMessage.SEVERITY_INFO.equals(msg.getSeverity()) 
       && !FacesMessage.SEVERITY_FATAL.equals(msg.getSeverity())) { 
       String inputLabel = findInputLabel(context, id); 

       if (inputLabel != null) { 
        ResourceBundle bundle ="bundle"; 

        writer.writeText(" (", null); 
        writer.writeText(bundle.getString("goTo") + " ", null); 
        writer.startElement("a", component); 
        writer.writeAttribute("href", "javascript:document.getElementById('" + id 
         + "').focus();", 
         null); 
        writer.writeText(inputLabel, null); 
        writer.endElement("a"); 
        writer.writeText(")", null); 
       } 
      } 
     } 
+0

vielleicht Element-ID ist gleich, so dass Sie nur das erste Element erhalten können. – user1087079

+2

Frage nicht klar, was genau brauchen Sie? –

+0

Möchten Sie zu der Registerkarte wechseln, wo ein Validierungsfehler vorliegt? –

Antwort

0

Diese Funktion auf einer Gruppe von Registerkarten Schleifen und überprüfen, ob es ein Fehler ist, wenn ja, es schalten und auf dem gewünschten Feld konzentrieren, alles, was Sie tun müssen, ist es in Ihrer Funktion hinzufügen:

var tabs = PF('tabViewWv').getLength(); //tabViewWv is WidgetVar name 
for (var iter = 1; iter <= tabs ; iter++) { 
    if ($('#form\\:tabView\\:tab' + iter).find(':input').hasClass('ui-state-error')) { 
     PF('tabViewWv').select(iter - 1); 
     return false; 
    } 
} 
Verwandte Themen