#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
Я создаю строку из 3 текстовых полей динамически.Но я не могу прочитать значения того же самого.
Ниже приведен код для создания текстовых полей.
$(function() {
$('#addVNFButton').on('click', function() {
if (vnfCounter > 10) {
alert("only 10 vnf's are allowed");
return false;
}
//e.preventDefault();
$('<div/>').addClass('col-md-12')
.html('<div class="col-md-3 col-sm-3 col-xs-3"><label class="control-label">Vendor</label> <input type="text" class="form-control" id="vnfVendor"/></div><div class="col-md-3 col-sm-3 col-xs-3"><label class="control-label">Product Name</label> <input type="text" class="form-control" id="vnfProductName"/></div><div class="col-md-3 col-sm-3 col-xs-3"><label class="control-label">Release</label> <input type="text" class="form-control" id="vnfRelease"/></div>')
.append($('<button/>').addClass('btn btn-action remove').text('Delete'))
.insertAfter($('#vnfSection'));
vnfCounter ;
});
});
приведенный выше код создает 3 текстовых поля подряд, как показано ниже.
Ниже приведен код, с помощью которого я пытался прочитать значения.
for (var i = 1; i < vnfCounter; i ) {
var vnfVendor = "";
var vnfProduct = "";
var vnfRelease = "";
vnfVendor = $('#vnfVendor' i).val();
vnfProduct = $('#vnfProductName' i).val();
vnfRelease] = $('#vnfRelease' i).val();
}
Я получаю результат как неопределенный HTML-объект.Пожалуйста, помогите
Комментарии:
1. Не видя рабочего примера проблемы, мы можем только догадываться. Но я полагаю, что проблема в том, что reset
vnfVendor
и другие в цикле, поэтому каждый раз, когда вы выполняете цикл, вы выбираете значения в нем.2. Я не вижу никаких элементов с идентификатором
vnfVendor[n]
— только один с жестко запрограммированнымvnfVendor
. Возможно, в этом и заключается проблема.3. Также обратите внимание, что вы не присваиваете новый идентификатор новым объектам, поэтому вы получаете дублированный идентификатор, и это большое «нет».
4. Итак, я должен использовать UUID?
Ответ №1:
Вы используете закрывающий тег div <div/>
вместо открывающего тега div <div>
.
$('<div>').addClass('col-md-12')
Надеюсь, это поможет вам. Удачного кодирования …!
Ответ №2:
Добавьте имя attr. к вашему динамически созданному текстовому полю
var Titles = $("input[name='TitleField']").map(function () { return $(this).val().trim(); }).get();
приведенный выше код вернет все текстовые поля vlaue в массиве.
У меня это работает