obtenir la valeur sélectionnée de selectOnemenu à l'aide de javascript dans primefaces et ouvrir une boîte de dialogue
Comment pouvons-nous obtenir la valeur sélectionnée de PrimeFaces <p:selectOneMenu>
à l'aide de JavaScript/jQuery?
J'essaie de le faire de cette façon, mais il ne veut pas aller à l'intérieur si la condition, ce qui signifie que l'ID de l'élément n'est pas correct.
<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>
- Veuillez expliquer pourquoi attendre 8 minutes est trop long.
Vous devez vous connecter pour publier un commentaire.
essayez de changer
en
MODIFIER
vous pouvez améliorer le sélecteur en changeant
en
JSF s'exécute sur le serveur et qui génère du code HTML envoyé au navigateur. JavaScript/jQuery fonctionne sur le navigateur internet et ne pas voir quoi que ce soit de la JSF code source, mais seulement de sa sortie HTML.
Ouvrir la page dans le navigateur, faites un clic droit et l'Affichage de la Source (ou ici sur PrimeFaces site vitrine). Vous verrez que le
<select>
élément a de l'ID du parent<h:form>
ajouté et le mot_input
suffixé (parce que le<p:selectOneMenu>
génère essentiellement un<div><ul><li>
pour atteindre la fantaisie n'feel ce qui n'est pas possible avec un simple<select>
, ainsi, il a été caché loin).Ainsi, si vous donnez le formulaire parent fixe ID (de sorte que le JSF n'est pas de générer automatiquement un), puis le suivant JSF code
va générer le code HTML
<select>
comme suit:Vous devez utiliser exactement que l'ID au lieu de saisir l'élément du DOM.
ou
Voir aussi:
Sans rapport avec au problème concret, vous avez là un autre problème avec cette
<p:dialog>
. Il contient un autre<h:form>
et donc, vous êtes effectivement l'imbrication des formes qui est illégal en HTML! Mettre l'ensemble de<p:dialog>
à l'extérieur le formulaire comme suit:J'ai mes amis. j'ai trouvé la solution suivante.