为什么函数中的变量没有传递给 HTML 文章?

Why isn't the variable in the function passing to the HTML article?

我可以让变量显示在函数中作为警报,但我无法让变量传递给文章。我做错了什么?

我知道 "a" 保存的信息是正确的,因为我已经用警报显示了它。

我试过使用以下方法传递变量:placeholderContent.recipientName = a;

我试过在函数内外声明变量,但也没用。

我试过制作一个嵌套函数来传递变量。

我是 javascript 的新手,花了几个小时研究它并尝试了不同的方法,但我无法让它工作。我希望有人能帮助我!

 function validateForm() {           
                a = document.forms["inviteForm"]["recipientName"].value;
                if (a == "") {
                    alert("Name must be filled out.");
                return false;
                         }
                document.getElementById("recipientName").textContent = a;
                }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section id="pageForm">
            <form action="#" Name=inviteForm onsubmit="return validateForm()">
                <label for="recipientName">Recipient name:</label>
                <input type="text" name="recipientName" id="recipientName" placeholder="Enter your Recipient Name" />
                <input type="submit" value="submit" />
            </form>
        </section>

        <article id="placeholderContent">
            Hello <span id="recipientName"></span>!
        </article>

用户在表单中输入名称并单击提交按钮后,页面上应显示变量 recipientName。

你需要做两件事:

  1. Return falsevalidateForm() 函数的末尾使页面不刷新
  2. 更改要在其中显示数据的 span 元素的 ID。当前,该 ID 与 input 元素的 ID 冲突。

这是更新后的代码:

<!DOCTYPE html>
<html lang="en-US">

<head>
    <title>Invite Page</title>
    <link rel="stylesheet" type="text/css" href="css/main.css" />
</head>

<body>    
    <section id="pageForm">
        <form action="#" Name=inviteForm onsubmit="return validateForm()">
            <label for="recipientName">Recipient name:</label>
            <input type="text" name="recipientName" id="recipientName" placeholder="Enter your Recipient Name" />
            <input type="submit" value="submit" />
        </form>
    </section>

    <article id="placeholderContent">
        Hello <span id="recipientNameDisplay"></span>!
    </article> 

  <script>
    function validateForm() {           
      a = document.forms["inviteForm"]["recipientName"].value;
      if (a == "") {
        alert("Name must be filled out.");
        return false;
      }
      document.getElementById("recipientNameDisplay").textContent = a;
      return false;
    }
  </script>

</body>
</html>

ID 是唯一的,您在 articleinput 字段中都使用了 recipientName,您不能在同一页面中使用它两次。我更改了文章中的 ID,一切正常。

 function validateForm() {           
            a = document.forms["inviteForm"]["recipientName"].value;
            if (a == "") {
                alert("Name must be filled out.");
            return false;
                     }
            document.getElementById("recipientName1").textContent = a;
            }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section id="pageForm">
        <form action="#" Name=inviteForm onsubmit="return validateForm()">
            <label for="recipientName">Recipient name:</label>
            <input type="text" name="recipientName" id="recipientName" placeholder="Enter your Recipient Name" />
            <input type="submit" value="submit" />
        </form>
    </section>

    <article id="placeholderContent">
        Hello <span id="recipientName1"></span>!
    </article>