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

标签 javascript html forms 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. validateForm() 函数末尾返回 false,以便页面不会刷新
  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>

关于javascript - 为什么函数中的变量没有传递给 HTML 文章?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57238192/

相关文章:

javascript - ngModel 第一次不触发 View 更新

html - 每 4 件商品更换颜色

javascript - jquery - 动态取消选中单选按钮后刷新按钮

html - 具有相同名称的两个输入元素是否有效?

forms - 如果我的表格包含信用卡号字段,我是否需要符合 PCI 标准

javascript - 使用 Ruby on Rails 的 Ajax 弹出框

php - 如何将 .html() 值从 JavaScript 传递到 CodeIgniter Controller ?

javascript - 当用户在输入字段中按 Enter 时如何运行函数?

javascript - 表单标签被删除

jquery - 带有输入的动态创建行上的日期选择器