У меня есть этот код 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;
).