原生JavaScript 获取动态表单的值并转换为对象(JSON)

需求:
网页有一个插件配置项表单,每个插件的配置项不同,有<input><textarea>两种形式的输入方式,需要用一个js喊出将标签的 namevalue 属性取出,并创建为对象,以JSON格式发送到后端。

代码如下

const getConfigJson = function () {
  var json = new Object()
  var inputs = document.getElementsByTagName("input") // 取得所有DOM
  for (let index = 0; index < inputs.length; index++) { // 遍历DOM获取值
    const element = inputs[index]
    var key = element.name
    if (element.type === 'number')
        var value = element.value
    if (element.type === 'checkbox')
        var value = element.checked // ? 1 : 0  
        //checkbox应根据需求赋值为true/false或 1/0
    json[key] = value // 利用 ES6 计算属性名为对象创建属性
  }

  var textareas = document.getElementsByTagName("textarea") // 思路同上
  for (let index = 0; index < textareas.length; index++) {
    const element = textareas[index]
    json[element.name] = element.value
  }

  console.log(JSON.stringify(json))
  return JSON.stringify(json)// 最后返回JSON
}

实践效果略。

总结:
时下“去jQuery”是大趋势,能用原生就用原生吧。
https://github.com/camsong/blog/issues/4

参考:
MDN: getElementsByTagName
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getElementsByTagName
MDN: 对象初始化 计算属性名
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Object_initializer#计算属性名
如何获取checkbox的值
https://blog.csdn.net/DreamWeaver_zhou/article/details/79492899
如何将JavaScript对象转成JSON字符串
https://blog.csdn.net/yaerfeng/article/details/7292000

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值