javascript - 如何将 100 个不同的选择名称及其选择的选项存储在一个对象中作为键值对
问题描述
我有一张动态数据表,它以表格形式在网页上显示,如图所示
因此该表将有许多具有不同名称和值的选择标签,具体取决于发生了多少(应用程序)迭代!
foreach($data['applicationList'] as $applications){
echo '<td><select name='.$applications['aid'].'>
<option value=000>Reject All<option>
<option value=111>Accept All<option>
<option value=100>Accept 1st Choise<option>
<option value=010>Accept 2nd Choise<option>
<option value=001>Accept 3rd Choise<option>
<option value=110>Accept 1st and 2nd Choise<option>
<option value=011>Accept 2nd and 3rd Choise<option>
<option value=101>Accept 1st and 3rd Choise<option>
</select></td>
}
有什么办法可以捕获所有不同的选定值和名称,这些值和名称已更改并将它们绑定到键值对的对象,以使用 javascript 或 jquery ajax 将其发送到控制器?有人可以帮我解决这个问题!
解决方案
我假设您希望在每次更改时收集所有这些值...
所以你需要一个change
处理程序,它将遍历所有select
元素并将它们的键/值添加到对象中。
下面的例子应该对你有指导意义。
$(document).ready(function(){
// This code part is just for this demo...
// I needed to recreate multile select elements.
for(i=0;i<10;i++){
var clone = $("[name='someName']").clone();
// Setting a different name for each
var newName = clone.attr("name")+i;
clone.attr("name",newName);
$("body").append(clone);
}
// Now to get the values each time one is changing
var data_obj = {};
$("[name^='someName']").on("change",function(){
$("[name^='someName']").each(function(){
data_obj[ $(this).attr("name") ] = $(this).val();
});
// Result
console.log( JSON.stringify(data_obj) );
});
});
select{
display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name='someName'>
<option value=000>Reject All<option>
<option value=111>Accept All<option>
<option value=100>Accept 1st Choise<option>
<option value=010>Accept 2nd Choise<option>
<option value=001>Accept 3rd Choise<option>
<option value=110>Accept 1st and 2nd Choise<option>
<option value=011>Accept 2nd and 3rd Choise<option>
<option value=101>Accept 1st and 3rd Choise<option>
</select>
推荐阅读
- javascript - AngularJS 表单验证不适用于 selectize.js
- laravel - Laravel Auth::user() 对象返回多个数据
- opengl - 延迟着色中的方向阴影映射
- drop-down-menu - 选择框选项标题在所选项目上方不可见
- reactjs - How to display EditText details below Labels in React js?
- mysql - 如何在 MySQL 中检查 BIT 数据类型?
- node.js - 使用授权承载请求时在 Firebase 函数中获取令牌
- json - 如何从 json 中形成一个新对象作为 Typescript 中的键值对?
- python - 通过局部函数改变函数变量
- r - 计算行中多个值的总和