我正在尝试在元素上开发一个“自动完成”功能,该功能将从远程数据库中获取数据(使用简单的 HTTP GET 请求,该请求将返回 JSON)。
在工作流表单中,在share-conifg-custom.xml我提供了控制模板:
<control template="/com/test/mytest.ftl"/>
这是mytest.ftl:
<input type="text" name="search" id="search" placeholder="Type Something" list="searchresults" autocomplete="off">
<datalist id="searchresults"></datalist>
<script type="text/javascript">
myHttp = new XMLHttpRequest();
url='https://jsonplaceholder.typicode.com/posts';
myHttp.open("GET", url);
myHttp.send();
myHttp.onreadystatechange = (e) => {
var arr = JSON.parse(myHttp.responseText);
for (var i =0; i < arr.length; i++) {
var option = document.createElement("OPTION");
option.setAttribute("value", arr[i]["title"]);
document.getElementById("searchresults").appendChild(option);
}
}
</script>
问题是它不发送任何请求。我在这里想念什么?
据我了解,Freemarker 模板应该将其转换为 HTML 代码,并且<script>
标签应该在我的浏览器上执行。