2016-01-07 1 views
1

создать список ввода с помощью этой функции:JQuery на «щелчок» на динамическую генерируемую списке возвращает «пустой строки»

function buildHTMLinputfields(data, form_id){ 
    var row$ = ''; 
    for(var i = 0; i < data.length; i++){   
     row$ = " <label for='check1'>" + data[i].Attribute_Name + "<input data-guid='" + data[i].GUID + "' type='checkbox' name='" + data[i].Name + "' value='" + data[i].Name + "' id='check1' checked='checked'> " + data[i].Name + " </label><br>"; 

     $(form_id).append(row$); 
    } 
} 

выхода на моем сайте:

 <label for="check1"> 
 
     Adressierung 
 
     <input type="checkbox" checked="checked" id="check1" value="volladressierbar" name="volladressierbar" data-guid="17caabea-c313-48c9-b965-739ef8d09a1f"> volladressierbar 
 
     </label><br> 
 
     
 
     <label for="check1"> 
 
     Adressierung 
 
     <input type="checkbox" checked="checked" id="check1" value="teiladressierbar" name="teiladressierbar" data-guid="d4419b55-3bb1-4efd-8f1c-f2ae3ed46988"> teiladressierbar 
 
     </label><br> 
 
     
 
     <label for="check1"> 
 
     Empfänger 
 
     <input type="checkbox" checked="checked" id="check1" value="privat" name="privat" data-guid="c14733e5-64f1-4141-a366-a9fd5dfa0aff"> privat 
 
     </label><br> 
 
     
 
     <label for="check1">Empfänger<input type="checkbox" checked="checked" id="check1" value="Gewerbe" name="Gewerbe" data-guid="6febb58c-8c1d-4f84-a647-5409107c2002"> Gewerbe 
 
     </label><br>

Так хорошо ... У меня есть checkboxen ввода.

Теперь я хочу получить предупреждение или файл console.log, если я нажму на один флажок.

Это моя функция для него (Вот проблема, я думаю,):

function test(){ 
    $('body').on('click', 'input', function(){ 
     var text = ''; 
     text = $('#check1').text(); // empty??? 
     console.log(text); // Output -> (an empty string) 
    }); 
} 

Консоль говорит мне: (пустая строка)

Я ищу все время в Google и SO, но я не могу найти свою проблему.

Я стараюсь это (без успеха):

Click event on dynamically generated list items using jquery

Для вашей информации (я думаю, что это очень важно) - я инициализировать функции здесь:

function ip_get_order_filters(){ 
    var cookie_value_bearer = getCookie('ip_token'); 

    var setHeader = function (xhr) { 
     xhr.setRequestHeader('Authorization', "Bearer " + cookie_value_bearer); 
    };  

    $.ajax({ 
     crossdomain: true, 
     url: 'https://testapi.***.de/***', 
     type: 'GET', 
     contentType: 'application/x-www-form-urlencoded', 
     beforeSend: setHeader, 
     dataType: 'json', 
     success: function (data) { 
      buildHTMLinputfields(data, '#filterform'); //generate the input list 
      test(); 
     }   
    });  
} 
+2

У вас есть несколько элементов с идентификатором 'id =" check1 "в вашем HTML. Атрибут 'id' должен быть уникальным. – haim770

ответ

3

Использование val вместо text и id должны быть уникальными. Вы можете сделать это следующим образом, не заботясь о id, используя this.

$('body').on('click', 'input', function(){ 
    var text = ''; 
    text = $(this).val(); 
    console.log(text); 
}); 
+0

Спасибо! Он работает нормально. – cgee

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