已更新 如何从表单中获取所有表单元素并将其格式化为对象以匹配以下对象的输出(仅使用javascript)?
var feature = dojo.byId('searchString').value;
var OBJECTID= dojo.byId('OBJECTID').value;
这是我需要的格式:
var updates = {attributes:{
OBJECTID:OBJECTID,
SubWS:feature
}};
表单元素:
<input type="text" id="OBJECTID" value="" />
<input type="text" id="searchString" value="" />
输出:
这是我的工作脚本,但输出与上述“更新”不匹配。最终版本将循环遍历有时会更新的更多表单字段,因此我不想对属性进行硬编码。
var inputs = document.getElementsByTagName("input");
console.log("inputs array", inputs);
var params = {attributes:{}};
for(var i=0; i < inputs.length; i++){
var curr = inputs[i];
if(curr.getAttribute('type')==='text'){
params[curr.getAttribute('name')] = curr.value;
}
}
这就是我的实际形式。正如您所看到的,该对象略有不同。
答案 0 :(得分:1)
如果我理解正确,那么您需要更改以下行
params.attributes[curr.getAttribute('name')] = curr.value;
通过添加.attributes
,您应该与之后的结构相匹配。