2016-05-29 2 views
0

Что я хочу сделать, так это добавить несколько входов в этот div с id "addedRoles". Это первое, как это:JQuery не может выбрать значение из ввода, созданного динамически

<div id="addedRoles" class="form-group"> 
    <div class="col-md-10"> 
     <input class="addedRole form-control" type="text" name="newRoleNames" /> 
    </div> 
</div> 

И я добавил еще дивы, используя эти коды:

$('#btnAddNewRole').click(function (event) { 
      $('#addedRoles').append(
       '<div class="col-md-10">' 
       + '<input class="addedRole form-control" type="text" name="newRoleNames" />' 
       + '</div>'); 
     }); 

После этого я пытался выбрать значения из всех входов, но все, что я получил это значение от первого ввод жесткого кода. Это потому, что входы создавались динамически? Как получить от них выгоду? Благодаря

+0

Как выбрать значения из всех входов? – Webman

+0

Извините, я забыл эту часть. Я попытался выбрать все входы с их атрибутом имени «newRoleNames», их класс «addedRole» и все дети «#addedRoles», но они не работали. Все значение, которое я получил, - от первого ввода жесткого кода. – zhiyuan

+0

Ввод должен иметь уникальный атрибут имени. – Mohammad

ответ

0

Для динамически добавленного элемента .click() не Огонь. Кроме того, добавьте класс в текстовое поле. Идентификатор должен быть уникальным во всех DOM.

Для динамически добавленного элемента вы должны .on в любом случае.

$(document).on('click','.txtboxClass',function (e) 
{ 
    //do stuff here 
    var userInput = $(this).val(); 
}); 

ИЛИ

$('.txtboxClass').on('click',function (e) 
{ 
    //do stuff here 
    var userInput = $(this).val(); 
}); 

Если вы обнаружите, добавив класс накладные расходы, то не большая проблема, вы можете сделать, используя селектор атрибута, а также.

+1

Приветствия решены. Благодарю. – zhiyuan

0

Попытки использовать имя класса «addedRole», чтобы получить все значения, так как атрибут «имя» должен быть уникальным

или

$("#addedRoles :text").each(function(i, text){ 
    var $val = $(text).val(); 
}) 
+0

Извините, я только что упомянул об этом в своем комментарии. Это только дало мне значение из ввода жесткого кода – zhiyuan

+0

Можете ли вы добавить код? – Webman

0

Try, чтобы получить все входы в классе, используя ниже:

$("#addedRoles :input").each(function(){ 
var input = $(this).val(); 
}); 
+1

Из того, что я понимаю, он добавляет divs/input динамически в div 'addedRoles' и хочет значения этих. Это означает, что есть один добавленный Roles главный div, и он может получить ваучер всех, используя каждый – TheUknown

0

Я предлагаю вам получение входных значений так:

$('#addedRoles input').val(); 

Но он возвращает значение первого входа в только матчей элементов , правый путь:

var values = []; 
$('#addedRoles input').each(function(){ 
    values.push($(this).val()); 
}); 

Here's JSFiddle example

+0

Добро пожаловать в SO, Сергей. Пожалуйста, не добавляйте повторяющиеся ответы – TheUknown

+0

Извините, но когда я пишу свой ответ, я не вижу вашего ... –

+0

Не стоит беспокоиться. Я обычно обновляюсь, прежде чем добавлять ответ, чтобы убедиться, что он не дублируется, поскольку вместо этого он просто загромождает сообщение :) – TheUknown

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