Я делаю программу, и мне интересно, почему все, что я вижу на моей странице html, это форма, но только сингл. где должен быть маркированный список для неупорядоченного списка. Я вводил пользовательский ввод в полях, но он не показывает мне данные в полях, как и предполагалось, когда я нажимаю кнопку "Отправить". Вот код.
function getFormElements() {
var gather_form_elements = new Array(
$("#first_name").val(),
$("#last_name").val(),
$("email").val(),
$("#phone_number").val()
);
displayValues(gather_form_elements);
}
function displayValues(gather_form_elements) {
for(i=0; i<gather_form_elements.length; i++)
{
document.getElementById("contact_info").innerHTML = "<li>" + gather_form_elements[i] + "</li>";
}
}
Потому что вы переоцениваете это на каждой итерации. Попытайтесь накапливать html перед использованием innerHTML
следующим образом:
var html = "";
for(var i = 0; i < gather_form_elements.length; i++) {
html += "<li>" + gather_form_elements[i] + "</li>";
// ^^ the += is crucial. If you don't use it, it will just replace the content of html (the innerHTML in your code), we need to use += to append to html instead of overriding it.
}
document.getElementById("contact_info").innerHTML = html;
Вы можете получить тот же результат, используя только одну строку кода:
document.getElementById("contact_info").innerHTML =
'<li>' + gather_form_elements.join('</li><li>') + '</li>';
+=
вместо =
. Если вы замените =
на +=
в вашем коде, это будет работать. Я только что накопил html
перед использованием innerHTML
чтобы мы не использовали его много раз и не вызывали накладных расходов. Это как я отмечаю в комментарии +=
имеет решающее значение.