Вот пример:Dojo - как настроить мой JSON, чтобы заполнить другой dijit.form.ComboBox Wiht пребет значения
Я хотел создать свою JSON, поэтому он может иметь список стран, соответствует списку состояний (1) Сначала я создаю storeData. Здесь я испытываю проблемы. Как настроить, чтобы я мог иметь поле со списком таких стран, как пример ниже, и другое поле со списком, которое будет иметь предварительно заданные значения на основе выбора страны: например: если пользователь выбирает «Соединенные Штаты» из выпадающий, то второй выпадающий должен иметь список «Техас» и «Калифорния»
<script type="text/javascript>
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.form.ComboBox");
var storeData = { identifier: 'name',
items: [
{ name: 'United States', state: ['Texas', 'California'] },
{ name: 'Canada', state: ['Alberta', 'Quebec'] }
]};
//
function init(){
// Function to perform a lookup on the datastore on each change event of the combo
function getItemFromStore(){
function lookUpState(item, request){
var lNode = dijit.byId("country");
if(!item){
lNode.setDisplayedValue("");
}else{
//set up the pre-select list of states
//logic goes here
}
}
//invoke the lookup
country.fetchItemByIdentity({identity: combo.getValue(), onItem: lookUpState});
}
// Link any change events in the combo to driving the fetchItemByIdentity lookup.
dojo.connect(combo, "onChange", getItemFromStore);
}
// Set the init function to run when dojo loading and page parsing has completed.
dojo.ready(init);
</script>
//HTML
<div data-dojo-type="dojo.data.ItemFileReadStore"
data-dojo- props="data:storeData" data-dojo-id="country"></div>
<div data-dojo-type="dijit.form.ComboBox" data-dojo-props=
"store:country, searchAttr:'name'" data-dojo-id="combo"></div>
<div class="formRow">
<label for="TestBox">State</label>
<input dojoType="dijit.form.ComboBox" name="state" id="state" />
</div>