2014-01-07 102 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....*/ }