表单提交调用功能如何


<!DOCTYPE html>
<html>
  <head>
        <title>Greet</title>
  </head>
  <body>
        <form id="demo">
              <input id="name" placeholder="Name" type="text"/>
              <input type="submit"/>
        </form>
        <script>
              function greet()
              {
                    alert('hello, ' + document.getElementById('name').value);
              }
              document.getElementById('demo').onsubmit = greet();
        </script>
  </body>

警报不显示我提交的名称。只有hello,.但是如果我像这样重写代码document.getElementById('demo').onsubmit = greet;那么它就可以工作了。但是为什么?这也有效:

<!DOCTYPE html>
<html>
  <head>
        <title>dom0</title>
  </head>
  <body>
        <form id="demo" onsubmit="greet()">
              <input id="name" placeholder="Name" type="text"/>
              <input type="submit"/>
        </form>
        <script>
              function greet()
              {
                    alert('hello, ' + document.getElementById('name').value);
              }
        </script>
  </body>

它之所以有效greet是因为它指的是函数本身。编写greet()时,您传递的是 greet 函数的输出,因为括号调用该函数并返回输出。

最新更新