2014-01-07 5 views
3

Я генерирую некоторые поля ввода с раскрывающимся списком. Теперь я хочу, чтобы текст был введен в эти поля ввода для автоматического обновления диапазона. Но, поскольку поля ввода динамически генерируются, мне трудно работать с jQueryПолучение идентификатора динамически созданного элемента 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

Вам не нужен идентификатор, чтобы выбрать элемент. '$ (" # textBoxContainer input ")' будет выбирать все входы, которые являются потомками 'textBoxContainer' –

+0

Что такое' # endpoint_curl'? Какова ваша задача? что вам нужно достичь с помощью этого кода? –

+0

'' все, но не тег vaild –

ответ

5

LIVE DEMO

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

Прочитайте документацию о .on() метода и события делегации для динамически создаваемых элементов

+0

Я считаю, что '# date' является динамической частью – zgood

+0

@zgood да это –

+1

Отлично, спасибо. Я пытался с «жить» раньше, поэтому я был близок. – 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/>"); 
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....*/ }

Смежные вопросы