我如何使数组出现在无序列表中



我有以下代码,我希望gather_form_elements数组显示为无序列表。这是我的html部分:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta author="Justin Roohparvar">
<link rel="stylesheet" href="CSScss.css">
<script src="Javascript/form.js"></script>
<title>Contact Form</title>
</head>
<body>
<form method="POST" action="week_1_contact_form.html">
    <h1>Contact Form</h1>
    <input id="first_name" type="text" maxlength="50" size ="25" placeholder="First Name" required> <br /><br />
    <input id="last_name" type="text" maxlength="50" size="25" placeholder="Last Name" required> <br /><br />
    <input id = "email" type="email" name="email" placeholder="Email" required> <br /> <br />
    <input id="phone_number" type="tel" name="phone_number" placeholder="Phone Number" required><br /><br />
    <input type="Submit" name="Submit" value="Submit" onclick="getFormElements()">
</form>
</body>
</html>

和我的form.js代码如下:

function getFormElements() {
    var gather_form_elements = new Array(document.getElementById("first_name"), document.getElementById("last_name"), 
    document.getElementById("email"), document.getElementById("phone_number"));
    displayValues(gather_form_elements);
}
function displayValues(gather_form_elements) {
    for(i=0; i<gather_form_elements.length; i++)
    {
        document.write(gather_form_elements[i]);
    }
}

任何建议都将不胜感激。

首先,您必须从输入中获得values,而不仅仅是元素本身。通过您的方法,应该看起来像这样:

function getFormElements() {
    var gather_form_elements = new Array(document.getElementById("first_name").value, document.getElementById("last_name").value, 
    document.getElementById("email").value, document.getElementById("phone_number").value);
    displayValues(gather_form_elements);
}
function displayValues(gather_form_elements) {
    document.write('<ul>');
    for(i=0; i<gather_form_elements.length; i++)
    {
        document.write('<li>'+gather_form_elements[i]+'</li>');
    }
    document.write('</ul>');
}

正如纽维(Newbie(所说,您需要获得每个控件的值。侦听器的一个简单版本是使用表单的 elements 集合。控件必须具有成功的名称,您可以利用这些名称来解决哪些控件以获得:

的值

function getFormElements(form) {
  var values = [];
  [].forEach.call(form.elements, function(control) {
    if (control.name) {
      values.push(control.value);
    }
  });
  // Show values for testing
  console.log(values);
  return values;
}
<form onsubmit="getFormElements(this); return false"> <!-- prevent submit for testing -->
  <h1>Contact Form</h1>
  <input name="first_name" type="text" maxlength="50" size="25" placeholder="First Name" required> <br><br>
  <input name="last_name" type="text" maxlength="50" size="25" placeholder="Last Name" required> <br><br>
  <input name="email" type="email" placeholder="Email" required> <br> <br>
  <input name="phone_number" type="tel" placeholder="Phone Number" required><br><br>
  <input type="submit" value="Submit">
</form>

这使您可以添加更多控件,并且不在乎您称之为什么。

因此,只有需要名称的名称控件,如果您不需要ID,请不要使用ID,并将提交侦听器放在表单的提交处理程序上,以便无论表单如何提交,都会调用侦听器。; - (

最新更新