为什么让我的表单与document.getElementByID停止alert()从触发?

时间:2015-10-01 16:16:49

标签: javascript dom alert

我正在尝试提醒表单元素的值,但即使最简单也无法正常运行:获取表单元素然后提醒字符串。

警报会自动触发,但不会在将表单的数据放入变量时触发。为什么呢?

我确定在某处可能有一个非常简单的错误,但我很难过。

<!DOCTYPE html>
<html>
<head>
<!-- ISTE240 Exercise 5b -->
<meta charset=utf-8 />
<title>Get elements from a form</title>

<script>
function getFormValues() {
// function to send first and last names to an 'alert' message.
   alert("test");
   var form = document.getElementById(“regForm”).elements;
}

</script>
</head>
<body>
<p>JavaScript Exercise 5b </p> 
<form id="regForm" onsubmit="getFormValues()">
First name: <input type="text" name="fname" value="Boo"><br>
Last name: <input type="text" name="lname" value="Radley"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

默认情况下,form代码会尝试提交表单值。您必须防止默认行为,演示

&#13;
&#13;
document.querySelector('#regForm').onsubmit = function(e){
  e.preventDefault();
  alert('a');
  
  var form = document.getElementById("regForm").elements; //<-- wrong syntax, must be "
  console.log(form);
}
&#13;
<!DOCTYPE html>
<html>

<head>
  <!-- ISTE240 Exercise 5b -->
  <meta charset=utf-8 />
  <title>Get elements from a form</title>
</head>

<body>
  <p>JavaScript Exercise 5b</p>
  <form id="regForm">
    First name:
    <input type="text" name="fname" value="Boo">
    <br>Last name:
    <input type="text" name="lname" value="Radley">
    <br>
    <input type="submit" value="Submit">
  </form>
</body>

</html>
&#13;
&#13;
&#13;