ausgewählten Wert aus selectOnemenu mit javascript in primefaces und öffnen Sie ein Dialogfeld
Wie können wir den ausgewählten Wert von PrimeFaces <p:selectOneMenu>
mit JavaScript/jQuery?
Ich versuche es auf diese Weise, aber es geht nicht innerhalb der if-Bedingung, was bedeutet, dass die ID des Elements ist nicht korrekt.
<h:head>
<script>
function showDialog() {
alert("insdie function");
if($('#someSelect').val() == 'India') {
dlg.show();
alert("after function");
}
alert("outside function");
}
</script>
</h:head>
<h:body>
<h:form>
<p:panel>
<h:panelGrid columns="2">
<p:selectOneMenu
id="someSelect"
value="#{testController.countryName}"
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{addPatientProfileBB.patStatusSelect}"
itemLabel="#{testController.countryName}"
itemValue="#{testController.countryNameId}" />
<p:ajax process="someSelect" update="dialog" oncomplete="showDialog()"/>
</p:selectOneMenu>
</h:panelGrid>
<p:dialog id="dialog" header="Login" widgetVar="dlg">
<h:form>
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="username" value="Username:" />
<p:inputText id="username" required="true" label="username" />
</h:panelGrid>
</h:form>
</p:dialog>
</p:panel>
</h:form>
</h:body>
- Erklären Sie bitte, warum wartet 8 Minuten ist zu lange.
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen
in
BEARBEITEN
verbessern Sie den Selektor durch ändern
in
JSF läuft auf dem webserver und die HTML generiert, die gesendet werden, um den Web-Browser. JavaScript/jQuery läuft auf webbrowser und nichts zu sehen von der JSF-source-code, sondern nur die HTML-Ausgabe.
Öffnen Sie die Seite im browser, Rechtsklick und View Source (oder hier auf der PrimeFaces-showcase site). Sie werden sehen, dass die eigentliche
<select>
element hat die ID des übergeordneten<h:form>
vorangestellt und das Wort_input
Suffix (weil die<p:selectOneMenu>
im Grunde erzeugt eine<div><ul><li>
zu erreichen, die ausgefallenen look ' N ' 'feel das ist nicht möglich, mit einem einfachen<select>
, also es war versteckt).So, wenn Sie die Eltern bilden einen festen ID (also, dass JSF nicht autogenerate ein), dann ist die folgende JSF-code
generiert die HTML -
<select>
wie folgt:Müssen Sie genau, dass die ID statt zu greifen, die element aus dem DOM.
oder
Siehe auch:
Unabhängigen zu dem konkreten problem, du hast da ein anderes problem mit sich, dass
<p:dialog>
. Es enthält ein weiteres<h:form>
und somit sind Sie effektiv verschachteln von Formen, die illegal in HTML! Setzen Sie das gesamte<p:dialog>
außerhalb form etwa so:Ich meine Freunde. ich habe die folgende Lösung gefunden.