2016-09-30 37 views
0

我有兩個依賴下拉列表(物化選擇)的國家和州。選擇國家我得到尊重的國家使用JavaScript,我添加選項狀態選擇,但它顯示空狀態下拉...但是當我把警報,值正確。任何人都可以幫我解決這個問題嗎?實現選擇集動態選項問題

編輯: 刪除後顯示使用檢查:無選擇我得到像下面的..實際html選擇下拉得到正確填充,但物化選擇不顯示或填充爲什麼? See image here
HTML代碼:

<select name="country" id="country" onchange="setStates();" style="width:100px; font-weight:bold;" > 
    <option value="">Select</option> 
     /* Country options here */ 
    </select> 
<select name="state" id="state" style="width:100px; font-weight:bold;" > 
    </select> 

Javascript代碼:

function setStates() { 

    cntrySel = document.getElementById('country'); 
    stateList = states[cntrySel.value]; 

    changeSelect('state', stateList, stateList); 
} 

function changeSelect(fieldID, newOptions, newValues) { 
    selectField = document.getElementById(fieldID); 
    selectField.options.length = 0; 

    for (i=0; i<newOptions.length; i++) { 
    selectField.options[selectField.length] = new Option(newOptions[i], newValues[i]); 
    } 

} 

回答

0

這應該工作:

function setStates() { 

    cntrySel = document.getElementById('country'); 
    stateList = states[cntrySel.value]; 

    changeSelect('state', stateList, stateList); 
} 

function changeSelect(fieldID, newOptions, newValues) { 
    selectField = document.getElementById(fieldID); 
    selectField.options.length = 0; 

    for (i=0; i<newOptions.length; i++) { 
    selectField.innerHTML= "<option value=\"" + newValue[i] + "\">" + newOption[i] + "</option>" 
    } 

} 
+0

對不起,沒有工作...仍然有空下拉..請檢查我的問題編輯 –

+0

請檢查圖像,在物化選擇只有沒有得到填充,但實際的HTML選擇正常工作 –

+0

你能告訴我們你的完整的代碼? – Fralec

0

你必須重新初始化兌現選擇,試試這個:

function setStates() { 

    cntrySel = document.getElementById('country'); 
    stateList = states[cntrySel.value]; 

    changeSelect('state', stateList, stateList); 
} 

function changeSelect(fieldID, newOptions, newValues) { 
    selectField = document.getElementById(fieldID); 
    selectField.options.length = 0; 

    for (i=0; i<newOptions.length; i++) { 
    selectField.options[selectField.length] = new Option(newOptions[i], newValues[i]); 
    } 
    // Materialize old version 
    $('#'+fieldID).material_select(); 
    // Materialize new version 
    $('#'+fieldID).select(); 

}