我想使用一段Javascript来过滤表格。我测试了没有CMS的代码,它运行得很好。但是,当我将它移动到Joomla te时,Javascript无法识别/执行。我想有些东西是阻塞或冲突的。
我尝试使用Sourcerer添加代码,并将其添加到带有Flexi代码的模块中。但是没有效果。我在Stackoverflow上读了一些关于此的帖子,但这不相关或没有解决方案。
这不是像RS防火墙这样的程序阻塞,我还检查了JCE和文章选项的设置。允许使用Javascript的所有权利都可以。
我在这里缺少什么?我怎样才能让它发挥作用?
这是代码:
<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>
如上所述,我在Joomla之外测试了整个代码,代码本身看起来还不错。所以与Joomla的结合使它成为一个问题。
非常感谢任何帮助!
编辑: 我创建了一个测试页面:test filter table Javascript片段位于源代码中的第702行。
谢谢!
答案 0 :(得分:0)
答案很简单。您包含了必要的代码但忘记了调用它。 w3c示例包含我在源代码中看不到的事件绑定。
示例:
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names..">
您的代码:
<input id="myInput" title="Type in a name" type="text" placeholder="Search for names.." />
您需要在某处调用函数myFunction()
。否则,没有任何反应。如果您无法将此onkeyup直接添加到输入字段,您也可以使用此JavaScript代码段:
$( document ).ready(function() {
jQuery('#myInput').on('keyup', myFunction);
});