l'appel de fonction javascript à l'aide de onkeyup
J'ai créé une fonction pour activer/désactiver un bouton d'envoi, et je veux qu'il à exécuter lorsque l'utilisateur tape quelque chose dans un champ de texte.
Voici mon code:
<form name="sidebarPostMessageForm" action="../app/NewMessageAsynch.action">
<input type="hidden" name="conversationId" value="${conversationId}"/>
<lalahtml:textarea id="messageText" name="messageText" onkeyup="enableDisablePostButton();" ></lalahtml:textarea>
<input type="button" name="postMessage" id="postMessage" onclick="if(this.form.messageText.value.trim().length>0){sidebar_postMessage();this.disabled='disabled'}" value="<ezmi18n:message key="doSendMessage.Label" />"/>
</form>
<script type="text/javascript">
function enableDisablePostButton(){
if (document.getElementById("messageText").value.trim() == "") {
document.getElementById("postMessage").disabled="disabled";
} else {
document.getElementById("postMessage").disabled="";
}
}
</script>
Quand je l'ai tester, j'obtiens l'erreur javascript suivant:
Erreur:
ReferenceError: enableDisablePostButton n'est pas défini
enableDisablePostButton();
C'est comme si la fonction enableDisablePostButton() n'existe pas... personne Ne sait pourquoi et que puis-je faire?
- Semble fonctionner ok quand je l'ai essayer .. il est de plus à votre script?
- non.. c'est tout.. :S
- essayez d'installation d'un jsfiddle, j'ai essayé et cela a fonctionné pour moi.
- Chargez-vous que, dans un pas de javascript du navigateur?
- Jetez un oeil à cette violon j'ai nettoyé un peu.. Regarder la console.
- oui.. le javascript est activé dans tous mes navigateurs (je suis en essais en FF)
- Je vois dans jsfiddle c'est de travailler.. je ne vois pas ce qui peut éventuellement être mauvais 🙁
Vous devez vous connecter pour publier un commentaire.
Je pense que placer la balise de script au-dessus de la balise de formulaire devrait faire l'affaire.
Le enableDisablePostButton fonction est définie après la balise de formulaire, de sorte qu'il n'est pas en mesure de trouver la fonction.
J'ai trouvé le problème, les gars! En fait, le javascript, le bloc n'a pas été chargé, car il a été récupérée de manière asynchrone (ajax). J'ai trouvé cela maintenant, et j'ai mis le code javascript dans le onkeyup attribut directement:
merci pour toute l'aide!