社区首页 >问答首页 >使用JavaScript获取具有会话用户输入值的HTML

使用JavaScript获取具有会话用户输入值的HTML
EN

Stack Overflow用户
提问于 2017-07-13 16:37:32
回答 1查看 297关注 0票数 3

我目前正在进行一个项目,在这个项目中,我需要能够处理存储和查看HTML字符串(从数据库,但从页面本身进行测试),这些字符串中有输入元素。我还需要存储元素的当前输入值(用户在查看页面时放置在其中的内容),最好是在HTML字符串中。

下面是我寻求帮助的一个例子:

我有以下HTML显示:

代码语言:javascript
代码运行次数:0
复制
<p id="pullfrom">
Character Name: <input><br>
Character Level: <input type="number">
</p>
<button onclick="algorithm('pullfrom')">Save</button>

然后,用户在文本框中输入一个字符名"Garrus Vakarian“,在数字框中输入"5”。然后,用户按下调用算法的保存按钮。

然后,该算法返回:

代码语言:javascript
代码运行次数:0
复制
<p id="pullfrom">
Character Name: <input value="Garrus Vakarian"><br>
Character Level: <input type="number" value="5">
</p>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-13 18:25:19

使用setAttribute( "value", npt.value )

设置指定元素上的属性值。如果该属性已经存在,则更新该值;否则将添加一个具有指定名称和值的新属性。

在被解析的元素中,我们可以将forEach <input>属性设置为提供的value,然后获取outerHTML toString()

代码语言:javascript
代码运行次数:0
复制
function algorithm( id ) {
  const e = document.getElementById( id ),
        npts = e.querySelectorAll( "input" );
  npts?.forEach( npt => npt.setAttribute( "value", npt.value ) );
  console.log( e.outerHTML.toString() );
}
代码语言:javascript
代码运行次数:0
复制
<p id="pullfrom">
Character Name: <input><br>
Character Level: <input type="number">
</p>
<button onclick="algorithm('pullfrom')">Save</button>

注意:--这是收集表单数据和像这样折磨DOM的糟糕方式--这可能是一种犯罪。然而..。

对于更复杂和更标准的<form>

尽管下面的示例不是非常复杂的<form>,但它应该演示如何扩展此方法以处理不同类型的表单数据。

代码语言:javascript
代码运行次数:0
复制
const frm = document.getElementById( "demo" );
frm.submit.addEventListener( "click", () => {
  // grab all desired inputs by tag
  const npts = frm.querySelectorAll( 'input:not([type="button"]), select, textarea' );
  npts?.forEach( npt => {
    switch ( npt.tagName.toLowerCase() ) {
      case "input": {
        switch ( npt.type ) {
          case "radio":
          case "checkbox": {
            npt.removeAttribute( "checked" ); // remove prior selections
            npt.setAttribute( "checked", npt.checked );
            break;
          }
          default: npt.setAttribute( "value", npt.value );
        }
        break;
      }
      case "textarea": npt.textContent = npt.value; break;
      case "select":
        const optns = npt.querySelectorAll( "option" ),
              pre_slctd = npt.querySelector( "[selected]" );
        if ( pre_slctd ) {
          pre_slctd.removeAttribute( "selected" ); // remove prior selections
        }
        optns[ npt.selectedIndex ].setAttribute( "selected", "selected" );
        break;
    }
  } );
  console.log( frm.outerHTML.toString() );
}, { passive: true } );
代码语言:javascript
代码运行次数:0
复制
label {
  display: block;
  margin-bottom: .3em;
}
代码语言:javascript
代码运行次数:0
复制
<form id="demo">
  <label>Character name: <input name="char_name" type="text"></label>
  <label>Character level: <input name="char_level" type="number"></label>
  <label>Character species: <select name="char_species">
    <option value="imagination">Human</option>
    <option value="cuddly" selected>Anthro</option>
    <option value="target_practice">Undead</option>
    <option value="caffeine_sponge">Developer</option>
  </select></label>
  <fieldset>
    <legend>Character's favourite radio station</legend>
    <label>Electro: <input type="radio" name="char_radio" value="electro" checked></label>
    <label>Black metal: <input type="radio" name="char_radio" value="black_metal"></label>
    <label>Opera: <input type="radio" name="char_radio" value="opera"></label>
  </fieldset>
  <label>Character has character: <input name="char_char" type="checkbox"></label>
  <label for="bio">Bio:</label>
  <textarea name="char_bio" id="bio"></textarea>
  <label>I do not understand the Terms of Service because I have not read them: <input name="tos" type="checkbox" required></label>
  <input name="submit" type="button" value="Submit">
</form>

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

https://stackoverflow.com/questions/45092885

复制
相关文章
JavaScript 判断输入的值为数字
使用js自带全局函数isNaN(), isNaN()返回一个Boolean值,如下 :
Devops海洋的渔夫
2019/06/02
3.5K0
微信小程序-form表单-获取用户输入文本框的值
微信小程序-form表单-获取用户输入文本框的值 <input name='formnickname' class="textarea" placeholder="{{geren.nickname}}" value='{{geren.nickname}}' bindinput="nickname" maxlength='15' auto-height/> // 获取昵称 nickname: function(e) { this.setData({ nickname: e.de
达达前端
2022/04/29
2.3K0
JavaScript 技术篇-js获取dom节点、html标签自定义属性的值。
id、name 等属性通过 e.id e.name 可以直接获取到。 但是自定义属性比如fieldname就不能直接获取到了。
小蓝枣
2020/09/23
9.2K0
获取HTML网页中option标签元素的值
在进行表单元素的操作时,难免会遇到对option元素的挑选,下面的示例代码能够很好的获取到你option元素选择的值,如果要传递给后端,可通过ajax或者其他方式传递即可。 示例代码
呆呆
2021/10/09
7.5K0
html 检测输入是否数字,JavaScript怎么判断输入是否是数字?
JavaScript进行表单操作时,很多时候需要判断输入的内容是否为数字。JavaScript判断输入内容是否为数字的方法很多,下面本篇文章就来给大家介绍几种方法,希望对大家有所帮助。
全栈程序员站长
2022/09/10
3.9K0
html 检测输入是否数字,JavaScript怎么判断输入是否是数字?
VBA_CAD获取用户输入的坐标点
prompt1 = vbCrLf & "Enter the start point of the line: "
办公魔盒
2019/07/22
2.3K0
使用内存缓存优化 WordPress 用户会话功能
WordPress 有个用户会话功能,就是在后台 > 用户 > 「我的个人资料」菜单下有个「登出其他设备」的按钮,点击它可以在其他设备上登出,只在此处保留登录状态。
Denis
2023/04/13
4020
使用内存缓存优化 WordPress 用户会话功能
Javascript获取select下拉框选中的的值[通俗易懂]
<select id=”test” name=””> <option value=”1″>text1</option> <option value=”2″>text2</option> </select>
全栈程序员站长
2022/11/17
7.9K0
微信小程序input框输入值获取
提交表单时获取输入框的值 wxml <view> <!-- 携带 form 中的数据触发 submit 事件 --> <form bindsubmit="submit"> <input value="{{ age }}" name="age"></input> <!-- form-type用于form组件 点击会触发form的submit或reset事件 合法值:submit 提交表单 reset重置表单 --> <button form
peng_tianyu
2022/12/15
4K0
微信小程序input框输入值获取
在HTML中使用JavaScript
前言 JavaScript是浏览器的内置脚本语言。当网页中嵌入了JavaScript脚本,浏览器加载网页时,就会执行脚本,从而操作浏览器,实现各种动态效果 JavaScript代码嵌入网页的方法 1、<script>元素直接嵌入代码 <script type="text/javascript"> function sayHello() { alert("hello!"); } </script> 2、<script>元素加载外部脚本 <script type="text/javascript" sr
pitaojin
2018/05/25
1.4K0
用户输入
大多数程序都在解决最终用户问题,为此通常需要从用户那里获取一些信息。在程序需要一个名字时,你需要提示用户输入该名字;程序需要一个名字时,你需要提示用户输入一系列名字。
狼啸风云
2019/01/18
9700
Javascript获取数组中的最大值和最小值的方法汇总
比较数组中数值的大小是比较常见的操作,下面同本文给大家分享四种放哪广发获取数组中最大值和最小值,对此感兴趣的朋友一起学习吧 比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用自带的sort()函数,下面来介绍如下几种方法,代码如下: 方法一: //最小值 Array.prototype.min = function() { var min = this[0]; var len = this.length; for (var i = 1; i < len; i++){ if (this
前朝楚水
2018/04/02
7.5K0
HTML5(二)——获取用户位置Geolocation
地图类、打车、外卖等类型的手机APP,一进入便咨询是否允许获取我们的位置,允许之后会根据我们所在位置推荐好物,逐渐地 H5 网页也开始获取用户位置。Geolocation是 H5 新增的对象,用于定位。常见打开网页有两种方式:移动端和PC端。它们是根据什么如何定位的呢?
呆呆
2021/11/26
2.1K0
JavaScript 学习-36.jQuery 获取和修改HTML
前言 jQuery 可以获取和修改HTML元素的属性和文本内容 text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) attr() - 获取或设置属性 val() - 设置或返回表单字段的值 获取文本 text() 和 html() text()是获取文本内容,html()返回所选元素的内容(包括 HTML 标记) <h3>获取html内容</h3> <div id="demo"> <p class="text-info">hello w
上海-悠悠
2022/05/31
7970
JavaScript 学习-36.jQuery 获取和修改HTML
HTML5(二)——获取用户位置Geolocation
地图类、打车、外卖等类型的手机APP,一进入便咨询是否允许获取我们的位置,允许之后会根据我们所在位置推荐好物,逐渐地 H5 网页也开始获取用户位置。Geolocation是 H5 新增的对象,用于定位。常见打开网页有两种方式:移动端和PC端。它们是根据什么如何定位的呢?
呆呆
2021/09/29
1.5K0
JavaScript 使用getElementsByTagName获取元素
可以使用内置对象document上的getElementsByTagName方法来获取页面上的某一种标签,获取的是一个选择集,不是数组,但是可以用下标的方式操作选择集里面的标签元素。
Devops海洋的渔夫
2019/06/02
1.7K0
二、在HTML中使用JavaScript
defer属性可以让脚本在文档完全呈现之后再执行,延迟脚本总是按照指定它们的顺序执行。
jojo
2022/03/21
8090
javascript html转换成markdown,如何使用Turndown使用JavaScript将HTML转换为Markdown[通俗易懂]
许多项目不是从定义的结构开始, 而是随着时间的流逝而变化。例如, 一个基本博客可能从一开始就使用HTML格式将其内容存储在数据库中, 但是由于其简单性, 总有一天某人可能希望开始使用Markdown而不是HTML, 在这种情况下, 你需要从一种格式转换为另一种格式。如果你将服务器端逻辑与JavaScript(Node.js)一起使用, 甚至直接在浏览器中将HTML转换为编辑器中的Markdown, 则可以使用Turndown库轻松地完成此类任务, HTML到用JavaScript编写的Markdown转换器。
全栈程序员站长
2022/10/04
4K0
点击加载更多

相似问题

如何使用Javascript获取HTML动态用户输入的值

15

HTML输入数组:如何使用javascript获取html输入数组值

20

使用Meteor获取JavaScript的Html输入文本值

12

使用javascript在html输入标记中显示php会话的值。

241

在Javascript中获取和使用输入的HTML值

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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