我最近的项目中有以下HTML代码:
<div class="tabset">
...
<input type="radio" name="tabset" id="tab-insert" aria-controls="insert" style="display: none;">
<label for="tab-insert" id="label-insert" style="display: none;">Insert</label>
....
<div class="right">
<a href="#" class="myButton" onclick="insert_data();">Novo</a>
</div>
....
<div class="tab-panels">
....
<div class="tab-panel" id="insert" style="display: none;" th:attr="data-url=@{/__${#strings.toLowerCase(classe.simpleName)} __/insert}">
<p id="form-insert"></p>
</div>
...
</div>
当我点击上方的按钮时,会触发此javascript函数:
function insert_data() {
if(document.getElementById('tab-insert').style.display === 'none') {
var url = document.getElementById('insert').dataset.url;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = this.responseText;
parser = new DOMParser();
var doc = parser.parseFromString(myObj, "text/html");
var form_html = doc.getElementById('form');
document.getElementById('tab-insert').removeAttribute('style');
document.getElementById('label-insert').removeAttribute('style');
document.getElementById('insert').removeAttribute('style');
document.getElementById('form-insert').innerHtml = form_html;
document.getElementById('tab-insert').setAttribute('checked', 'checked');
document.getElementById('tab-listagem').removeAttribute('checked');
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
}
由浏览器执行,在控制台中没有错误,但是没有将任何代码添加到<p id="form-insert"></p>
块中。
无法找出问题所在。有人可以提示如何进行这项工作吗?
(我检查过,变量form_html
接收到正确的值;除行document.getElementById('form-insert').innerHtml = form_html;
之外,所有代码似乎都可以正常工作。)