2013-12-14 37 views
-2

我們正在建立一個動態的選擇框與自動完成的標準選擇後進行建模此鏈接:我似乎弄清楚爲什麼我得到語法錯誤。有任何想法嗎?

http://harvesthq.github.io/chosen/

選擇框不填充。

事實證明,該鏈接上的SELECT插件本身不支持Ajax。

現在,我試圖通過嘗試重新創建<options>...</options>解決方案,每次我們想添加選項。

但它仍然沒有填充。

我跑它的控制檯和它放在這裏行96說語法錯誤:

).each(function(i, building) { 
    $('<option>') 
    .val(building.BuildingID) 
    .text(building.BuildingDisplay) 
    .appendTo($('#buildingID')); 

可能有人請試一下,看看是否能找到什麼,我做錯了什麼?

下面是完整的(必要的)代碼:

function getBuildings() { 
    $.ajax({ 
    url: 'getBuildings.php', 
    dataType: 'json' 
    }) 
    .done(function(buildingInfo) { 
    $(buildingInfo).replaceWith('<select name="buildingID" id="buildingID" style="width:600px;font-size:10pt;" class="changeable" data-summary="summBuilding"></select>') 
    ).each(function(i, building) { 
    $('<option>').val(building.BuildingID).text(building.BuildingDisplay).appendTo($('#buildingID')); 
    }) 

    $("#buildingID").choose(); 
    }); 
} 

選擇框:

<div> 
    <select name="buildingID" id="buildingID" data-placeholder="Choose a building..." class="chosen-select" style="width:500px;"> 
    <option value=""></option> 
    </select> 
</div> 

感謝您的幫助提前

function getBuildings() { 
     $.ajax({ 
      url: 'getBuildings.php', 
      dataType: 'json' 
     }) 
    .done(function(buildingInfo) { 
$(buildingInfo).replaceWith('<select name="buildingID" id="buildingID" style="width:600px;font-size:10pt;" class="changeable" data-summary="summBuilding"></select>')).each(function(i, building) {$('<option>').val(building.BuildingID).text(building.BuildingDisplay).appendTo($('#buildingID')})); 
    }) 

    $("#buildingID").choose(); 
    }); 
} 

enter image description here

回答

3

請使用http://jshint.com/http://jslint.com在SO上發佈之前檢測並找到更簡單的語法(和樣式)錯誤。

的誤差似乎是一個額外的支架的位置:

.replaceWith('stuff')).each(function(i, building) {}) 

根據要求,這裏的(語法烯丙基)校正代碼:

function getBuildings() { 
    $.ajax({ 
     url  : 'phpservices/getBuildings.php', 
     dataType: 'json' 
    }).done(function (buildingInfo) { 
     $(buildingInfo)//wrap json in jquery 
      .replaceWith('<select name="buildingID" id="buildingID" style="width:600px;font-size:10pt;" class="changeable" data-summary="summBuilding"></select>')//replace json with select which is never added to the dom 
      .each(function (i, building) { //iterate the select ***NOT THE JSON BECAUSE YOU REPLACED IT*** 
       $('<option>') 
       .val(building.BuildingID) 
       .text(building.BuildingDisplay) 
       .appendTo($('#buildingID')); 
      }); 
      $("#buildingID").choose(); 
    }); 
} 
+0

非常感謝。 我把我的理解是你的建議,但仍然沒有運氣。我仍然可能錯過了一些東西。你能把整個代碼放在一起嗎? 順便說一句:我試過鏈接,我需要更多的時間來處理它。 – Kenny

+0

再次感謝。 顯然,事情正在發生。它仍然沒有填充。 請看上面的截圖。最上面的一個顯示,如果選項靜態填充到SELECT框,則SELECT工作。 當您嘗試點擊以打開SELECT框 – Kenny

+0

屏幕的底部顯示空白