2017-10-16 27 views
3

我想使用一段JavaScript來過濾表格。我測試了沒有CMS的代碼,它的工作完美。但是,當我將它移動到Joomla te時,Javascript無法識別/執行。我想有些東西是阻塞或衝突的。Joomla文章或模塊中的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

檢查生成的表ID通過檢查HTML –

+0

是否JavaScript的出現在你的頁面的源代碼所有?該腳本只包含一個本身無用的函數。你是否也包含調用這個函數的代碼? –

+0

謝謝。是的,表格ID是一樣的。代碼是在頁面的源代碼中。這是我放置的確切代碼:https://www.w3schools.com/howto/howto_js_filter_table.asp – Jason

回答

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); 
}); 
+0

出於某種原因,onkeyup從代碼中獲取了腳本。我完全沒有看到。在sourcerer標籤({source})之間放置整個輸入行之後,它被解決了。這夠了!謝謝! – Jason