此HTML在单击按钮时动态追加。输入值在输入事件处理程序中返回undefined
。为什么会发生这种情况?
html += '<div class="div-table-col-unit"> <input type="text"/></div>';
$(document).on('input', '.div-table-col-unit', function(event) {
alert(this.value);
});
发布于 2020-12-14 20:25:35
您将input
事件附加到div
元素;它们没有要读取的value
。您需要将事件直接绑定到input
:
let html = '<p>Foo</p>';
html += '<div class="div-table-col-unit"> <input type="text" /></div>';
$('body').append(html);
$(document).on('input', '.div-table-col-unit input', function(event) {
console.log(this.value);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
或者,您可以保留与div
的绑定,但使用事件的target
属性来引用实际产生input
事件的元素:
let html = '<p>Foo</p>';
html += '<div class="div-table-col-unit"> <input type="text" /></div>';
$('body').append(html);
$(document).on('input', '.div-table-col-unit', function(event) {
console.log(event.target.value);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
https://stackoverflow.com/questions/65288971
复制相似问题