こんにちは、電話ギャップ アプリを開発していて、JSON 応答を返す WCF サービスからデータを取得しています。コンボ ボックスに DesignName を表示し、関連付けられた designId を渡す必要があります...どうすればよいでしょうか?
これはjson応答です..
{
"DesignResult":
"{\"DesignId\":\"1\",\"DesignName\":\"Bedroom\"}
{\"DesignId\":\"2\",\"DesignName\":\"Dining\"}
{\"DesignId\":\"5\",\"DesignName\":\"Entertainment\"}
{\"DesignId\":\"4\",\"DesignName\":\"Occasional Tables\"}
{\"DesignId\":\"6\",\"DesignName\":\"Office\"}
{\"DesignId\":\"3\",\"DesignName\":\"Upholstery\"}"
}
これは、選択した位置でテキストを取得できる関数です
var combo1 = document.getElementById("designBox");
var val = combo1.options[combo1.selectedIndex].text;
ボックスにDesignNameを表示する必要があるため、これによりDesignNameが得られますが、関連するDesignIdを取得する必要があります..
次のコードでは、オプションを動的に追加しています
for (var i = 0; i < jsonData.Design.length; i++)
{
opt = document.createElement("option");
opt.text= jsonData.Design[i].DesignName;
sel = document.getElementById("designBox");
sel.add(opt);
}
次のようにコードを変更しましたが、DesignId の「Null」を取得します
var optElement = document.createElement("option");
optElement.setAttribute('value',jsonData.Design[i].DesignId);
optElement.innerHTML = jsonData.Design[i].DesignName;
取得するには:
var combo1 = document.getElementById("designBox");
var test = combo1.getAttribute('value');
alert("test value is...."+test);