0

已更新 如何从表单中获取所有表单元素并将它们格式化为对象以匹配以下对象的输出(仅使用 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;
    }
}

这就是我实际表格上的样子。如您所见,对象略有不同。 在此处输入图像描述

4

1 回答 1

1

如果我对您的理解正确,那么您需要更改以下行

params.attributes[curr.getAttribute('name')] = curr.value;

通过添加.attributes,您应该匹配您所追求的结构。

于 2013-03-19T17:01:39.703 回答