Ne peut pas exécuter le code Javascript dans la page jsf
Je suis nouveau sur jsf. J'ai essayé de faire un simple Javascript de la fonction avec le bouton de commande. J'ai essayé plusieurs fois, mais n'était même pas capable de faire un message d'alerte. C'est la partie de mon code. Svp quelqu'un peut me guider, et de dire ce qui est faux, et ce que je dois faire pour le faire fonctionner?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<script type="text/javascript">
function test(){
alert('test');
alert(document.getElementById('frmDashBoard:testbt').value);
}
</script>
</h:head>
<h:body>
<ui:composition template="../../template/commonLayout.xhtml">
<ui:define name="content">
<div>
<h:form id="frmdashboard">
<div name="form_panel" style="width: 984px">
<h:commandButton id="testbt" value="#{message.btn_dashboard_search}" action="#{searchBLAction.doAction}" onclick="test()" />
</div>
</h:form>
</div>
</ui:define>
</ui:composition>
</h:body>
</html>
Ce sont tous ceux inclut les, des tableaux, des pauses, des en-têtes, les styles de absolument nécessaire afin de reproduire le problème concret? Non? Veuillez omettre de l'extrait de code. Ça ajoute du bruit à la question, ce qui rend difficile pour les experts de "spot" le problème simplement en regardant le code. Pour le présent et l'avenir des questions, essayez de créer le plus possible de test autonome extrait de code qui pourrait fondamentalement, il suffit de copier n " coller'n'run pour voir le problème concret.
désolé pour le désagrément causé.j'ai supprimé la partie inutile.veuillez vous référer à la version mise à jour.merci
désolé pour le désagrément causé.j'ai supprimé la partie inutile.veuillez vous référer à la version mise à jour.merci
OriginalL'auteur Bernad Ali | 2012-07-01
Vous devez vous connecter pour publier un commentaire.
En dehors de cette minuscule/majuscule faute de frappe (ce qui ne serait pas en cause la fonction n'est pas appelée à tous, par la voie), concrètement, votre problème est dû au fait que cette page a été conçu comme un modèle de client à l'aide de
<ui:composition>
. Tout le contenu à l'extérieur de la<ui:composition>
balise est ignoré au cours de l'exécution par Facelets. Ce contenu n'est utile que pour visual web designers, mais une fois qu'il est compilé et exécuté au cours de l'exécution, il est totalement ignoré. Au lieu de la composition du contenu sera inséré dans le modèle master, lecommonLayout
dans votre cas.Vous avez besoin de mettre la
<script>
élément à l'intérieur d'un<ui:define>
au lieu de cela, de cette façon, il sera pris dans le final Facelets composition.Ou, mieux, de mettre le JS de la fonction dans son propre fichier JS dans le
/resources
dossier et de référence comme suit:Grâce à la
target="head"
, il est automatiquement transféré dans le code HTML<head>
lors de la construction de la vue.Voir aussi:
OriginalL'auteur BalusC
Quelque chose définie à l'extérieur de l'interface utilisateur:la composition est ignoré.Ainsi, placez votre contenu à l'intérieur de cette balise, et il va fonctionner:
Quelque chose comme ceci:
OriginalL'auteur priya