当前位置: 首页 > 知识库问答 >
问题:

HTML输入元素以电子形式返回EJS中的空格

孔理
2023-03-14

我在做一个项目,遇到了这个问题。

我有一个简单的EJSE电子项目,正在加载主文件,就像这样。

mainWindow.loadURL("file://" + __dirname + "/public/app/index.ejs");

我的index.ejs文件也很简单。


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="./assets/style.css" />
  </head>
  <body>
    <%- include ("./frame") %> <%- include ("./login") %>
    <script src="assets/scripts/buttonSscripts.js"></script>
    <script src="./assets/scripts/login.js"></script>
  </body>
</html>

现在,im试图使用fetch发送API请求,但它总是说密码和用户名为空,而当我尝试console.log()它们的值时,我只得到空格。输入元素中没有任何文本。

我的login.ejs文件:

<div class="login-container">
  <div class="login-form">
    <div class="img-wrapper" style="text-align: center">
      <img
        src="./assets/asd.png"
        alt=""
        height="220"
        width="180
        "
      />
      <h1>Login in</h1>
    </div>
    <form>
      <input type="text" id="email" name="email" />
      <input type="text" id="password" name="password" />
      <button type="button" id="submitbtn">Submit</button>
    </form>

    <script src="./assets/scripts/login.js"></script>
  </div>
</div>

我的login.js文件:


const $ = require("jquery");

const loginbtn = document.getElementById("submitbtn");
const email = document.getElementById("email").value;
const password = document.getElementById("password").value;

loginbtn.addEventListener("click", (e) => {
  console.log(email);
  fetch("http://localhost:8080/api/v1/auth/login/email", {
    method: "POST",
    headers: {
      Accept: "application/json",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      email: email,
      password: password,
    }),
  })
    .then((response) => response.json())
    .then((responseJson) => console.log(responseJson));
});

谁有办法解决这个问题?

共有1个答案

萧焱
2023-03-14

在选择emailpassword时,您不应该获取它们的值,而应该获取click侦听器中的值。请参阅下面的代码:

第一个更改:在选择元素时删除.value

const email = document.getElementById("email");
const password = document.getElementById("password");

第二个变化:获取click侦听器内部的值。

body: JSON.stringify({
   email: email.value,
   password: password.value,
})

完整代码如下:

const $ = require("jquery");

const loginbtn = document.getElementById("submitbtn");
const email = document.getElementById("email");
const password = document.getElementById("password");

loginbtn.addEventListener("click", (e) => {
  console.log(email);
  fetch("http://localhost:8080/api/v1/auth/login/email", {
    method: "POST",
    headers: {
      Accept: "application/json",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      email: email.value,
      password: password.value,
    }),
  })
    .then((response) => response.json())
    .then((responseJson) => console.log(responseJson));
});
 类似资料:
  • 我在一个具有特定ID的div中使用javascript创建了一个SVG元素。我的主要目标是获得SVG图像,让用户下载它。 因此,我的想法可能是绝对错误的,是使用,获取子元素,这是我的SVG,然后执行以获取字符串并将其保存到某个位置。我可以看到元素,我知道它在那里,但当我从vaadin打印容器元素时,它没有任何子元素。 我的情况: 我从内容中得到什么,其中是我的DIV,ID: 我错过了什么? 如果这

  • 这段代码的目的是要求用户输入特定的日期和时间。输入应该从HTML表单发送到应用程序。py,python脚本应该检查输入并相应地显示“可用暂停”。 我试过这个: python代码是: 我得到的错误是: strptime()参数0必须是str,而不是类NoneType 谁能帮我解决这个问题,告诉我如何将输入更改为str,同时保持输入类型为“日期时间本地”?谢谢你! 编辑:超文本标记语言表单似乎没有向p

  • 问题内容: 我已经阅读了许多关于动态添加字段集的博客和文章,但是它们都给出了非常复杂的答案。我所需要的不是那么复杂。 我的HTML代码: 因此,用户将在该字段中输入一个整数值(我正在使用javascript检查验证)。在单击链接时,将出现相应数量的输入字段供他输入。我想使用javascript实现此目的。 我不是javascript专业人士。我在考虑如何通过链接检索用户在字段中填写的整数并显示相应

  • 问题内容: 嗨,我的收藏集是这样的,我试图按日期的排序顺序获取特定blog_id的所有评论列表。 我想按日期的降序列出特定blog_id的所有评论,如下所示 我如何在mongooes或mongodb中做到这一点 我试过了 该查询提供了注释以及来自多个文档的所有相关注释,但是注释是随机的。$ sort不适用于我 先感谢您。 问题答案: 乔琳 试试这个: 根据您的样本数据,输出将是:

  • 我正在处理存在于一个php文件中的html表单,如下所示,我想计算输入的html输入值。 Php/HTML代码: 点击保存后,它会保存在JSON中,如下所示,并输入值列表。此时,我已经输入了值,因此在JSON中显示如下: 下面是属于上述html/php代码的表单截图部分: 输入值后,显示如下: 以下是inspect上的html代码: 问题陈述: 我想知道我需要添加什么php代码,以便获得输入值的计

  • 问题内容: 如何更改元素的内容(在这种情况下为变量“ make”中的元素)而不丢失内容?如果您可以指出其他可以修改现有xml文档的纯python模块,请告诉我。 PS!BeautifulSoup非常适合HTML和XML的屏幕抓图和解析! 问题答案: 请查看上的文档。这有效: