var xhrArgs = {
url: "../Person/GetAll",
handleAs: "json",
preventCache: true,
load: function (data, ioargs) {
var jsonString = dojo.toJson(data)
var dataStore = new dojo.store.Memory({ data:
dojo.fromJson(jsonString) });
var personCmb = dijit.byId('cmbSingers');
if (personCmb == null)
{
var cobox = new dijit.form.ComboBox({ id: "cmbSingers", name: "Name", store: dataStore, searchAttr: "Name" }, "cmbSingers");
cobox.startup();
}
function cmbSingers_OnSelected() {
alert(dijit.byId('cmbSingers').get('value')); **this return the Text, But I want to get Id of Select value**
}
答案 0 :(得分:1)
对于在2016年寻找解决方案的人来说+ ... 我遇到了同样的情况,并找到了一种从Dojo ComboBox中获取所选选项值的方法。不要只使用.value或.get(' value'),而是使用.item.value:
dijit.byId('someComboBox').item.value
.item将返回一个这样的对象供您使用: 对象{id:" 1",值:" 1",名称:"一个"}
详细说明...假设您使用选择来定义ComboBox的选项,如下所示:
<select dojoType="dijit.form.ComboBox" id="someComboBox" maxlength="30">
<option value=""></option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
假设您选择&#34; One&#34;选项。
致电 dijit.byId(&#39; someComboBox&#39;)。值将返回&#34; One&#34; ,
但是调用 dijit.byId(&#39; someComboBox&#39;)。item.value 将返回&#34; 1&#34;
答案 1 :(得分:0)
Mkay,json是这样的?
{ identifier: 'Id', items: [ { Id: '1', name:'foo', age: 12 }, { Id: '2', name:'bar', age: 30 } ] }
您在变量dijit.form.ComboBox
中有cobox
,变量dojo.data.ItemFileReadStore
中有store
。
dojo.connect(cobox, "onChange", function() {
var val = this.get("value"),
id = "",
matcher = new RegExp("^" + val + "$");
dojo.some(store._arrayOfAllItems, function(item, idx) {
if(matcher.test(store.getValue(item, "name")) {
id = store.getValue(item, "Id");
return true; // breaks .some loop
}
});
});