javascript - 如何在js中获取多个选择列表数据?
问题描述
<form onsubmit = "return checkForm(this)" method="POST" action = "">
<select name="user[11]">
<option value='1'>one</option>
<option value='2'>two</option>
</select>
<select name="user[12]">
<option value='1'>one</option>
<option value='2'>two</option>
</select>
</form>
我需要使用键获取选择框值(我将用于更新用户)
我使用下面的功能
function checkForm(frm){
var inps = document.getElementsByName('user[]');
console.log(inps );// but its displaying blank nodelist
}
请提出您宝贵的建议
解决方案
您可以document.querySelectorAll()
为 name 属性使用和通配符:
[name^="user["]
这意味着,查找所有具有以name
开头的属性的元素user[
。
如果您想从 name 属性中获取键,请像这样映射它:
userArray.map(element => Number(element.name.match(/\d+/)[0]));
let userArray = Array.from(document.querySelectorAll('[name^="user["]'));
let userArrayKeys = userArray.map(element => Number(element.name.match(/\d+/)[0]));
console.log("Matched elements",userArray);
console.log("Their Keys", userArrayKeys);
<form onsubmit="return checkForm(this)" method="POST" action="">
<select name="user[11]"> <!-- I will get selected -->
<option value='1'>one</option>
<option value='2'>two</option>
</select>
<select name="user[12]"> <!-- I will get selected -->
<option value='1'>one</option>
<option value='2'>two</option>
</select>
<select name="update[12]"> <!-- I will not get selected -->
<option value='1'>one</option>
<option value='2'>two</option>
</select>
</form>
不过,您应该为输入字段命名,以便更好地反映它们所保存的数据。
推荐阅读
- django - 我可以将一个 django 文件字段中的文件作为文件列表上传吗?
- python - 我需要使用 python 将 json 文件转换为 html
- laravel - 用户 _id 没有默认值 laravel
- vuejs3 - 如何避免“组件已声明但其值从未被读取”。当我使用 Vue3 设置语法时?
- r - dput(head()) 的问题以便做一个详细的例子
- c# - 在 Blazor 服务器应用程序中销毁后无法重新实例化数据表
- php - Xdebug 3.0.4 不工作
- discord - 我如何编辑和重新设计我的旧嵌入消息
- ios - 图像层 mapbox iOS 不支持的 URL
- c# - 为什么在图像列表上循环计时器滴答事件时抛出异常参数无效?