Динамически получить новое добавленное значение текстового поля

Я динамически добавляю новое текстовое поле в событие щелчка.

Я не могу получить значение каждого текстового поля, буду признателен за любую помощь, спасибо.

На моей html-странице:

   <div id = "job-container">
    <p>
        <label>Job Property</label><br>
        <input name = "JobProperty[1][job_property]" />
    </p>
  </div>

    <a href = "javascript:" id = "add-new-jobproperty"  
    onclick = "createJobProperty()">Add new job</a>

В моем коде Javascript

let i = 2;

function createJobProperty() {
    let template = `

    <p>
        <label>Job Property</label><br>
        <input name = "JobProperty[${i}][job_property]">
    </p>`;

let container = document.getElementById('job-container');
let div = document.createElement('div');
div.innerHTML = template;
container.appendChild(div);
definedLength=i;
i++;

}

Боюсь, ваш вопрос не ясен. С каким значением у вас возникли проблемы?

obscure 10.04.2019 21:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
36
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте добавить класс к входам, а затем получить их по className (поскольку по имени тега у вас могут быть другие входы) и перебрать каждый из них, чтобы получить значения.

<input class='my-input' name = "JobProperty[${i}][job_property]"> используйте этот код, чтобы добавить новый вход

var inputs = document.getElementsByClassName('my-input');

Array.from(inputs).forEach(function(element) {
  console.info(element.value);
});

//or

Array.prototype.forEach.call(inputs, function(element) {
    console.info(element.value);
});

Вы можете попробовать:

let i = 2;

function createJobProperty() {
    let template = `
    <p>
        <label>Job Property</label><br>
        <input name = "JobProperty[` + i + `][job_property]">
    </p>`;

    let container = document.getElementById('job-container');
    let div = document.createElement('div');
    div.innerHTML = template;
    container.appendChild(div);

    let input = container.querySelector("input[name='JobProperty["+i+"][job_property]']");
    // do what ever you want with the input

    definedLength=i;
    i++;
}

Другие вопросы по теме