2012-03-09 3 views
0

Вот пример: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> 

ответ

Смежные вопросы