Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将tag的内部html改成用户名?

如何将tag的内部html改成用户名?
EN

Stack Overflow用户
提问于 2021-07-31 11:45:15
回答 1查看 42关注 0票数 1

我正在尝试将(div.class=loguser)的innerhtml更改为已登录的用户名。为了获得用户名,我编写了一个函数,该函数从内部的register_button (div#register)获取用户名和密码的输入。我编写了一个对象(AddData),它接受用户名和密码并将其存储在一个数组(Datas)中。将其放入数组后,我创建了一个函数,用于验证用户名和密码是否存在于数组中。如果它确实存在,则假设将innerhtml更改为用户名。但它不起作用。我甚至不能在注册时提交表格。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let datas = [];
const addData = (ev) => {
  ev.preventDefault();
  let data = {
    username: document.getElementById('rusername').value,
    password: document.getElementById('rpassword').value
  }
  datas.push(data);
  document.forms[0].reset();
}
document.addEventListener('DOMContentLoaded', () => {
  document.getElementById('register_button').addEventListener('click', addData);
});

function isUserValid(username, password) {
  var username = document.getElementById('lusername').value;
  var password = document.getElementById('lpassword').value;
  for (var i = 0; i < datas.length; i++) {
    if (datas[i].username === username &&
      datas[i].password === password) {
      var name = username;
      document.getElementsByClassName('loguser').innerHTML = username;
    }
  }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<body>
  <div class="loguser">
    <td>
      <ul class="nav-area">
        <li class="dropdown"><a href="#">User</a>
        </li>

      </ul>
    </td>
  </div>
  </tr>
  </table>
  </div>

  <div class="wrapper">

    <div class="login_box">
      <div class="login_header">
        <img src="images/alimama.png" alt=""> <br> Login or Register!
      </div>

      <div id="login">
        <form action="" method="POST">
          <input id="lusername" type="text" name="lusername" placeholder="Username" required>
          <br>
          <input id="lpassword" type="password" name="lpassword" placeholder="Password">
          <br>
          <input type="submit" name="login_button" value="Login">
          <br>
          <a href="#" id="signup" class="signup">Need an account? Register here!</a>
        </form>
      </div>

      <div id="register">
        <form action="" method="POST">
          <input id="rusername" type="text" name="rusername" placeholder="Username" required>
          <br>
          <input id="rpassword" type="password" name="rpassword" placeholder="Password" required>
          <br>
          <input id="register_button" type="submit" name="register_button" value="Register">
          <br>
          <a href="#" id="signin" class="signin">Already have an account? Sign in here!</a>
        </form>
      </div>
    </div>


</body>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-31 13:22:35

isUserValid()不应该将usernamepassword作为参数,因为它从输入中获取它们。它应该接受一个事件参数,这样你就可以将它作为一个事件侦听器来调用。

document.getElementsByClassName()返回一个NodeList。您需要使用[0]访问第一个匹配项以设置其innerHTML。你也可以使用document.querySelector(),它只返回第一个匹配项。

“登录”按钮没有ID。请添加id="login_button",以便可以向其添加事件侦听器。

您可以使用find()方法来搜索数组,而不是使用循环。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let datas = [];
const addData = (ev) => {
  ev.preventDefault();
  let data = {
    username: document.getElementById('rusername').value,
    password: document.getElementById('rpassword').value
  }
  datas.push(data);
  document.forms[0].reset();
}
document.addEventListener('DOMContentLoaded', () => {
  document.getElementById('register_button').addEventListener('click', addData);
});

function isUserValid(e) {
  e.preventDefault();
  var username = document.getElementById('lusername').value;
  var password = document.getElementById('lpassword').value;
  var found_user = datas.find(d => d.username === username && d.password === password);
  if (found_user) {
    document.getElementsByClassName('loguser')[0].innerHTML = found_user.username;
  }
}

document.getElementById("login_button").addEventListener("click", isUserValid);
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<body>
  <div class="loguser">
    User
  </div>

  <div class="wrapper">

    <div class="login_box">
      <div class="login_header">
        <img src="images/alimama.png" alt=""> <br> Login or Register!
      </div>

      <div id="login">
        <form action="" method="POST">
          <input id="lusername" type="text" name="lusername" placeholder="Username" required>
          <br>
          <input id="lpassword" type="password" name="lpassword" placeholder="Password">
          <br>
          <input type="submit" id="login_button" name="login_button" value="Login">
          <br>
          <a href="#" id="signup" class="signup">Need an account? Register here!</a>
        </form>
      </div>

      <div id="register">
        <form action="" method="POST">
          <input id="rusername" type="text" name="rusername" placeholder="Username" required>
          <br>
          <input id="rpassword" type="password" name="rpassword" placeholder="Password" required>
          <br>
          <input id="register_button" type="submit" name="register_button" value="Register">
          <br>
          <a href="#" id="signin" class="signin">Already have an account? Sign in here!</a>
        </form>
      </div>
    </div>


</body>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68605347

复制
相关文章
如何快速把 Laravel 默认邮箱登录改成用户名登录
Laravel中默认的登录是通过邮箱和密码进行登录的。那么,怎么样才能用最少的改动将它改成用密码登录呢?
写PHP的老王
2019/08/12
1.9K0
如何快速把 Laravel 默认邮箱登录改成用户名登录
python tag生成html标签脚本
def tag(name, *content, cls=None, **attrs): """生成一个或多个HTML标签""" if cls is not None: attrs['class'] = cls if attrs: attr_str = ''.join(' %s="%s"' % (attr, value) for attr, value in sorted(attrs.items())) else: attr_str = '' if content: return '\n'.join('<%s%s>%s</%s>' % (name, attr_str, c, name) for c in content) else: return '<%s%s />' % (name, attr_str)
用户5760343
2019/08/02
1.1K0
填坑记(把重装系统时写的中文用户名改成英文)
如果看我的稀有用户。相信会知道,我昨天逼逼赖赖那么多,其实环境还是没有配置好。令人头秃。我研究了一中午,发现问题在于,软件对中文路径的不友好到了一个我想象不到的程度。
云深无际
2021/04/14
2.6K1
填坑记(把重装系统时写的中文用户名改成英文)
用 CSS 替代 HTML 的 table tag 设计网页版面
版工之前就耳闻 CSS 功能强大,可完全取代 HTML 的 table、tr、td 等 tag,做网页「外观 (user interface)」的编排。CSS 除了可避免陷在 HTML 多层的巢状 table 里,亦可明显减少网页档案大小,让页面日后可统一维护,而非逐一修改。日前版工找了一些书上的 CSS 范例,经简单修改并测试后,开放七个 CSS + div tag 网页排版的「样板」让大家下载 (.html 格式,可直接用浏览器开启),内容如下:
全栈程序员站长
2022/07/04
5610
JavaScript 如何将 HTML 转成 Markdown?
本篇带来:在 JavaScript 如何将 HTML 转成 Markdown?先收藏,总有一天要用到!!
掘金安东尼
2022/08/22
7700
JavaScript 如何将 HTML 转成 Markdown?
如何将word转为html_word转html工具
推荐可以试用Free Spire.Doc for Java免费控件哦,它支持将html string和html file转word,代码操作简单,转换效果也很好。
全栈程序员站长
2022/11/04
2.5K1
html运用(三) html如何禁止(表单)用户名、密码自动填充
html登录表单经常被自动填充,有的甚至用户从来没有登录过的网站也会有自动填充,甚是让人讨厌。
Java架构师必看
2021/06/10
2.4K0
如何将 JavaScript 文件引入到 HTML
JavaScript,也缩写为 JS,是一种用于 Web 开发的编程语言。作为与 HTML 和 CSS 一起使用的 Web 核心技术之一,JavaScript 用于使网页具有交互性并构建 Web 应用程序。遵循通用显示标准的现代 Web 浏览器通过内置引擎支持 JavaScript,无需额外的插件。
梦溪
2021/09/08
12.3K1
VSCode 使用教程-6.Auto Rename Tag自动同步修改的html标签
前言 Auto Rename Tag 插件可以在修改HTML 标签的时候,自动修改标签名称 问题描述 当我们在html里面把h1标签改成h3时,右边的闭合标签未同步修改 安装 Auto Rename Tag 插件可以自动同步修改 Auto Rename Tag 插件安装 搜索: Auto Rename Tag插件 安装完成后就可以自动同步修改了 <body> <h3>Hello World 2!</h3> </body>
上海-悠悠
2022/09/19
3.4K0
VSCode 使用教程-6.Auto Rename Tag自动同步修改的html标签
centos 7如何将 网卡ens33 修改成 eth0「建议收藏」
(1) 编辑/etc/sysconfig/grub文件,命令为vi /etc/sysconfig/grub,在倒数第二行quiet后加入如下代码: net.ifnames=0 biosdevname=0 [root@localhost ~]# vim /etc/sysconfig/grub
全栈程序员站长
2022/11/15
1.1K0
探索如何将html和svg导出为图片
笔者开源了一个Web思维导图,在做导出为图片的功能时走了挺多弯路,所以通过本文来记录一下。
街角小林
2023/09/11
8620
探索如何将html和svg导出为图片
【HTML5】Canvas 内部元素添加事件处理
canvas 没有提供为其内部元素添加事件监听的方法,因此如果要使 canvas 内的元素能够响应事件,需要自己动手实现。实现方法也很简单,首先获得鼠标在 canvas 上的坐标,计算当前坐标在哪些元素内部,然后对元素进行相应的操作。配合自定义事件,我们就可以实现为 canvas 内的元素添加事件监听的效果。
零式的天空
2022/03/02
2.2K0
git的tag操作
很简单,tag的字面意思是标签。在git中tag的功能就是把开发阶段做一个总结,打上标签,方便以后的查看与管理,通常用于版本发布。
老高的技术博客
2022/12/28
3530
点击加载更多

相似问题

CSS覆盖内部html-tag中的内容

25

如何将[tag][/tag]替换为<tag></tag>?

22

<tag></tag>和<tag /> >在HTML中有什么区别?

33

合并html-tag到其他-tag

11

如何将这个json改成dataframe?

119
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文