我有一堆通过MySQL查询动态创建的文本输入。
在我的页面底部我有这个..我不得不使用window.load而不是document.ready,因为后者不起作用
<script>
$(window).load(function() {
$('.<?php echo $sku; ?>').on('input', function() {
$('.'+$(this).attr('class')).val($(this).val());
});
});
我的理解是,使用.on应该与过去和现在的dom对象相关,但事实并非如此。
我目前正在处理的(杂乱)html是
<input type="text" class="mySKU18" id="inputsku" contenteditable="true" onkeydown="if (event.keyCode==13) saveToDatabase2(this,'itemnumber','mySKU18')" onClick="showEdit(this);"></input>
这是在页面加载时生成的,并且&#39;重置&#39;如果单击一个按钮,则使用ajax。
我的问题是与上面的html有关的上述脚本。 两个HTML在初始页面加载和ajax响应上都是相同的。
现在我的解决方案是重新启动我的ajax php脚本底部的脚本。
/// my php
?>
<script>
$('.<?php echo $sku; ?>').on('input', function() {
$('.'+$(this).attr('class')).val($(this).val());
});
</script>
这有效,并且不提供任何控制台错误,但显然不是理想的。 任何人都知道可能是什么问题以及如何解决它?
答案 0 :(得分:0)
像这样构建新的文本输入元素,它们将在DOM树中。您可以通过这种方式构建所有新元素,并使用appendChild将它们链接在一起,如果您需要在DOM树中引用它们。
var text = document.createElement("input");
text.setAttribute('type', 'text')
text.setAttribute('id', 'yourID');
text.setAttribute('name', 'yourName');
text.setAttribute('class', 'yourClass');
text.setAttribute('style', 'yourStyle');
document.getElementById("yourParent").appendChild(text);