javascript - 为什么使用 document.getElementByID 获取表单会阻止alert() 触发?

标签 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>

最佳答案

默认情况下,form 标记将尝试提交表单值。您必须防止默认行为,如下演示

document.querySelector('#regForm').onsubmit = function(e){
  e.preventDefault();
  alert('a');
  
  var form = document.getElementById("regForm").elements; //<-- wrong syntax, must be "
  console.log(form);
}
<!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>

关于javascript - 为什么使用 document.getElementByID 获取表单会阻止alert() 触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32892290/

相关文章:

javascript - 点击后警报按钮的内部内容

javascript - 如何使用 Bootstrap 和 Javascript 渲染 Word 文档

javascript - 打印模态窗口的全部内容

javascript - 需要用 JS 的 DIV 的像素百分比

javascript - 使用 POST 将 Ajax 变量发送到 PHP

javascript - Polymer 1.0 和外部 DOM 操作库

java - 实现 AddProximityAlert

javascript - 如何使用 DOM 更改/添加 p 标签样式?

Javascript 性能 - 迭代 dom 并添加监听器

C - printf ("\a") 不会发出警报