【发布时间】:2018-01-05 04:41:14
【问题描述】:
我正在尝试在物化模式中进行选择。 到目前为止一切正常,但是当我使用 ajax 请求刷新模式选择的内容时,选择消失了。
经过调查,我发现innerHTML 不是正确的HTML。
这是我所拥有的:
let modal = htmlResponse.find('#modal')
let modal_old = document.getElementById('modal')
console.log(modal)
console.log(modal.innerHTML)
modal_old.innerHTML = modal.innerHTML
控制台日志如下:
<div class="modal-content">
<h4>Title</h4>
<p>Some Text</p>
<select id="mySelect" name="mySelect">
<option value="" disabled selected>Select one user</option>
<option value="2" id="2 ">Name 1</option>
<option value="4" id="4 ">Name 2</option>
</select>
</div>
<div class="modal-footer">
<a href="#" class="modal-action modal-close waves-effect waves-green btn-flat">Cancel</a>
<a href="#" class="modal-action waves-effect waves-red btn-flat btn-transfer">Ok</a>
</div>
紧随其后
<div class="modal-content">
<h4>Title</h4>
<p>Some text</p>
<select id="mySelect" name="mySelect">
<option value="" disabled="" selected="">Select one user</option>
<option value="2" id="2 ">Name 1</option>
<option value="4" id="4 ">Name 2</option>
</select>
</div>
<div class="modal-footer">
<a href="#" class="modal-action modal-close waves-effect waves-green btn-flat">Cancel</a>
<a href="#" class="modal-action waves-effect waves-red btn-flat btn-transfer">Ok</a>
</div>
正如我们所见,disabled 和 selected 被替换为
disabled="" 和 selected=""。
innerHTMl 替换后模态仍然打开,但选择不可见。
当我使用 Chrome 开发工具检查模式(在 ajax 替换之后)时,我看到了第一个输出(选择正确)但它没有显示。
这是由 innerHTML 还是我的错误使用引起的?
顺便说一句,我正在 macOS High Sierra (10.13.2) 和 Chrome (63.0.3239.108) 上进行测试,这两个版本都在最新的可用更新中。 该网站托管在 docker 容器中,但我不认为问题可能来自这里。
【问题讨论】:
标签: javascript html html-select innerhtml