【发布时间】:2024-05-23 19:40:02
【问题描述】:
我在使用 jQuery 访问 HTML 输入元素的值时遇到问题,这个输入元素最初是使用早期函数中的 .html() 函数编写的。
这是我创建输入元素的代码 - 没有问题
<script type="text/javascript">
$(document).ready(function() {
$("#model").change(function()
{
$.post("../includes/_ajaxSpecs.php",{ model:$(this).val() } ,function(data)
{
var string = data;
var partsArray = string.split(',');
$("#comp_specs").fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$(this).html(partsArray[0]+"<input style='width:12em;margin-left:5px;border:1px solid #CCC;' name='input1' id='input1' /><br />"+partsArray[1]+"<input style='width:12em;margin-left:5px;border:1px solid #CCC;' name='input2' id='input2' /><br />").addClass('jText').fadeTo(900,1);
});
});
});
});
</script>
现在我想获取 #input1 中的值,并使用以下代码为该值设置一个不同的输入框 (#new_input):
<script type="text/javascript">
$(document).ready(function() {
$("#input1").change(function()
{
var text = $("#input1").val();
$("#new_input").val(text);
});
});
不知道为什么我不能在 #input1 和 #input2 中访问这些值,即使我可以在最后的 POST 中看到它们? JQuery 访问由 .html() 函数编写的表单元素是否存在问题?我使用了很多列出的第二个函数,并且知道这适用于标准表单元素...
更新:这是我根据您的建议更新的代码,但仍然无法获取?
<script type="text/javascript">
$('#div1').on('change', '#input1', function() {
$("#input1").change(function() {
var text = $("#input1").val();
$("#new_input").val(text);
});
});
</script>
更新:已解决,谢谢@Dragon
【问题讨论】:
-
您是在创建输入之前还是之后绑定 .change 事件?
-
更改事件发生在创建元素的初始函数之后
标签: javascript jquery