循环使用<select>标记并将内容附加到JSON对象
Loop through a <select> tag and append the content to JSON object
我在我的网站上有一个包含多个选择选项的<select>
标记。我需要做的是将这个<select>
标签中的所有这些选项附加到现有的JSON对象中。
<form onsubmit="return false;" role="form">
<div class="form-group">
<label for="groupSelector">Group:</label>
<select class="form-control" id="groupSelector">
<option value="guests">guests</option>
<option value="members">members</option>
<option value="vips">vips</option>
<option value="mods">mods</option>
<option value="admins">admins</option>
<option value="owners">owners</option>
</select>
</div>
<div class="form-group">
<input type="text" placeholder="Prefix..." class="form-control" id="groupPrefix" />
</div>
<div class="form-group">
<select multiple class="form-control" style="min-height: 170px;" id="groupPermissions">
<option>permission.node.1</option>
<option>permission.node.2</option>
<option>permission.node.3</option>
<option>permission.node.4</option>
<option>permission.node.5</option>
</select>
</div>
<div class="text-right">
<input type="submit" value="Send" class="btn btn-primary" />
<button value="Save" class="btn btn-default" onclick="save_field_data('perm_manager');">Save</button>
</div>
</form>
你可以在这个HTML中看到一个<select>
字段,id为"groupPermissions"'
这是我需要做的:我有这个JSON对象,我想为嵌套在我的JSON对象中的<select>
字段附加<option>
值。这就是我想要的JSON对象的样子:
{
"selected_group":"mods",
"prefix":"[Moderator]",
"permissions": {
"node": "permission.node.1",
"node": "permission.node.2",
"node": "permission.node.3",
"node": "permission.node.4",
"node": "permission.node.5",
}
}
我正在寻找一种方法来附加<select>
字段的所有子元素(<option>
标签),并将它们附加到JSON对象,并使其如上所示。
这是我当前保存字段值的JavaScript。在发送到服务器上存储之前,我需要在这里附加选项。
var permNodes = {};
$('#groupPermissions option').each(function(){
permNodes.push( {"node": this.value} );
});
var perm_manager_data = {
selected_group: $("#groupSelector").val(),
prefix: $("#groupPrefix").val(),
permissions: permNodes
};
$.ajax
({
type: "POST",
dataType : 'json',
async: false,
url: 'data/save_data.php?file=permissions_manager',
data: { data: JSON.stringify(perm_manager_data) },
success: function() {alert("Field data saved successfully!"); },
failure: function() {alert("An error occured trying to save the field data!");}
});
第一件事一个对象表示法中不能有多个具有相同名称的key。您至少需要将名称更改为:node1、node2等。你实际上是在尝试将元素推入一个对象。
2件你可以将这些选项以节点的形式添加到javascript对象中,而不是以数组的形式。这样的。
permNodes["node"+i] = this.value;
更新1 如果你真的想在json输出中设置权限和数组,那么你唯一需要做的改变是:
var permNodes = [];
代替
var permNodes = {};
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- php请求带有多个对象json-jquery
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- 动态属性对象 - JSON
- JavaScript 对象 (JSON) 中的动态设置值
- 从数组查询获取对象 JSON 值时出错
- 使用jQuerygetJSON将多维对象JSON转换为HTML
- 需要从 Angular JS 应用程序中的另一个 JSON 对象数组填充 JSON 数组的每个对象 JSON 对象数组
- 嵌套对象JSON排序JavaScript
- PHP在MySQL中保存来自Javascript的对象"JSON.stringify"通过Ajax
- 将JavaScript对象/ JSON转换为PHP数组
- JSON对象.JSON对象内部
- 访问对象的对象- JSON API
- 数组到对象JSON
- Message":"传入的无效对象(JSON数据格式化问题)