2017-10-16 11 views
3

Je veux utiliser un morceau de Javascript pour filtrer les tables. J'ai testé le code sans CMS et cela a fonctionné parfaitement. Cependant, quand je le déplace vers Joomla, Javascript n'est pas reconnu/exécuté. Je suppose que quelque chose bloque ou est en conflit.Javascript dans l'article ou le module Joomla non exécuté

J'ai essayé d'ajouter le code avec Sourcerer et l'ai également ajouté dans un module avec du code Flexi. Cependant, aucun effet. J'ai lu d'autres articles à ce sujet sur Stackoverflow, mais ce n'était pas pertinent ou pas de solution.

Ce n'est pas un programme comme RS Firewall qui bloque, et j'ai également vérifié les paramètres de JCE et les options de l'article. Tous les droits d'admettre Javascript sont corrects.

Qu'est-ce qui me manque ici? Comment puis-je le faire fonctionner?

Voici le code:

<script> 
function myFunction() { 
var input, filter, table, tr, td, i; 
input = document.getElementById("myInput"); 
filter = input.value.toUpperCase(); 
table = document.getElementById("myTable"); 
tr = table.getElementsByTagName("tr"); 
for (i = 0; i < tr.length; i++) { 
td = tr[i].getElementsByTagName("td")[0]; 
if (td) { 
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) { 
tr[i].style.display = ""; 
} else { 
tr[i].style.display = "none"; 
} 
} 
} 
} 
</script> 

Comme l'a dit, je l'ai testé tout le code aussi à l'extérieur Joomla et le code lui-même semble correct. Donc, la combinaison avec Joomla en fait un problème.

Toute aide est très appréciée!

Édition: J'ai créé une page de test: test filter table L'extrait Javascript se situe autour de la ligne 702 dans la source.

Merci!

+0

Vérifiez l'ID de la table générée par l'inspection HTML –

+0

apparaît-le code JavaScript dans le code source de votre page à tout? Le script ne contient qu'une fonction qui est elle-même inutile. Avez-vous inclus le code qui appelle cette fonction aussi? –

+0

Merci. Oui, l'identifiant de la table est le même. Et oui le code est dans la source de la page. C'est le code exact que j'ai placé: https://www.w3schools.com/howto/howto_js_filter_table.asp – Jason

Répondre

0

La réponse est simple. Vous avez inclus le code nécessaire mais vous avez oublié de l'appeler. L'exemple w3c contient une liaison d'événement que je ne vois pas dans votre code source.

Exemple:

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.."> 

Votre code:

<input id="myInput" title="Type in a name" type="text" placeholder="Search for names.." /> 

Vous devez appeler quelque part la fonction myFunction(). Sinon, rien ne se passe. Si vous ne pouvez pas ajouter ce onKeyUp directement au champ de saisie, vous pouvez utiliser cet extrait JavaScript ainsi:

$(document).ready(function() { 
    jQuery('#myInput').on('keyup', myFunction); 
}); 
+0

Pour une raison quelconque, onkeyup a été scripté hors du code. Je n'ai pas vu ça. Après avoir placé toute la ligne d'entrée entre les étiquettes sourcerer ({source}), il a été résolu. C'était assez! Merci! – Jason