2014-01-07 56 views
3

我正在用下拉列表生成一些输入字段。我现在希望输入到这些输入字段中的文本自动更新跨度。但是,由于输入字段是动态生成的,我很难让它与jQuery一起工作获取动态创建元素的ID jQuery

感谢您的帮助!

HTML:

<div id="url"> 
    https://api.test.com<span id="endpoint" readonly="readonly"> </span> 
</url> 

<div class="control-group"> 
    <label class="control-label" for="selectbasic">Endpoint</label> 
    <div class="controls"> 
     <select id="dropdown" name="selectbasic" class="input-xlarge"> 
     <option value = "none">select</option> 
      <option value="id">/test/{id}</option> 
      <option value="id_date">/test/{id}/{date}</option> 
     </select> 
    </div> 

的javascript:

$('#dropdown').change(function(){ 
    $('#textBoxContainer').empty(); 
    var data = $(this).find('option:selected').attr('value'); 
    var cleaned_data = data.split("_"); 
    var num_args = cleaned_data.length; 
    for (var i = 0; i < num_args; i++){ 
     $('#textBoxContainer').append('<label class="control-label" for="textinput">' + cleaned_data[i] + '</label><br/><input id="' + cleaned_data[i] + '" name="textinput" size="25" type="text" placeholder="'+ cleaned_data[i] +'" class="input-xlarge"><br/>'); 
    } 

}); 

jQuery('#date').on('input', function() { 
    $('#endpoint').html('test'); 
}) 

这里的Fiddle

+0

你不需要一个ID来选择一个元素。 '$(“#textBoxContainer input”)'将选择所有属于'textBoxContainer'后代的输入。 –

+0

'#endpoint_curl'是什么?你的任务是什么?你需要用这个代码来实现什么? –

+0

''是所有,但不是一个vaild标签 –

回答

5

LIVE DEMO

$("#textBoxContainer").on('input','#date', function() { 
    $('#endpoint').html(this.value); 
}); 

阅读有关动态生成的元素

+0

我相信'#date'是动态部分 – zgood

+0

@zgood是的它是 –

+1

太好了,谢谢。我早些时候用“live”来尝试它,所以我很接近。 – tknickman

0

您可以创建元素,并在同一时间

DEMO

 $('#textBoxContainer').append( 
      $("<input/>", 
       { 
       type: "text", id: cleaned_data[i], 
       name: "textinput", size:25, 
       placeholder: cleaned_data[i], 
       class:"input-xlarge", 
       keyup: function inputkeyup(){ 
        $("#endpoint").text(this.value); 
       } 
      }) 
     ).append("<br/>"); 
分配功能的 .on()方法和事件代表团文档
0

这里是你更新的jsfiddle jsfid dle.net/pgHvV/7/

+0

你正在做你的代码有点不对。这是更新的js小提琴 - http://jsfiddle.net/pgHvV/7/ – AKS

0

做的一切你的循环内... 您可以创建和操纵和利用的控制和他们的内线本身价值...

检查该

for (var i = 0; i < num_args; i++){ $('#textBoxContainer').append('<label class="control-label" for="textinput">' + cleaned_data[i] + '</label><br/><input id="' + cleaned_data[i] + '" name="textinput" size="25" type="text" placeholder="'+ cleaned_data[i] +'" class="input-xlarge"><br/>'); /*do everything here.. you can create a on click on onchange or onblur or on anything for that id....*/ }