目标:使用 document.getElementById
和纯javascript,在页面加载时自动填充表单。
我有一个数组传递到下面的函数,它会正确地将其添加到html脚本中。
function showResults(results) {
var s = "";
for (var i=0, il=results.features.length; i<il; i++) {
var featureAttributes = results.features[i].attributes;
for (att in featureAttributes) {
s = s + "<b>" + att + ":</b> " + featureAttributes[att] + "<br />";
// var subshed = feature[0].attributes["SubWS"];
}
}
dojo.byId("info").innerHTML = s;
}
结果如下:
对象ID: 190 项目类型: 雨水治理改造 单位: 下部 子水系: sadd
然而,我需要修改脚本以填写现有表格。
document.getElementById(att).value = featureAttributes[att];
我总是似乎会覆盖最终输出,所以我只填写一个表单值。 我该如何填写多个值?
更新:Polywhirl先生说得对。 我还不得不添加一个if语句来处理空属性值。 最终代码如下:
function showResults(results) {
var subshed = results.features[0].attributes["SubWS"];
//OBJECTID = results.features[0].attributes["OBJECTID"];
document.getElementById("searchString").value = subshed;
console.log("feature", results.features[0].attributes["SubWS"])
console.log(document.getElementById("Map_ID"));
var s = "";
for (var i = 0, il = results.features.length; i < il; i++) {
var featureAttributes = results.features[i].attributes;
for (att in featureAttributes) {
// s = s + "<b>" + att + ":</b> " + featureAttributes[att] + "<br />";
// var subshed = feature[0].attributes["SubWS"];
// document.getElementById(att).value = featureAttributes[att];
if(!!featureAttributes[att]&&!!document.getElementById(att)){
document.getElementById(att).value = featureAttributes[att];
}else{
//alert(att + "this is null")
}
}
}
// dojo.byId("info").innerHTML = s;
}