2013-12-14 2 views
-2

Мы строим динамическую ВЫБЕРИТЕ окно с автозаполнения по образцу стандартного Выберите по этой ссылке:Я могу понять, почему я получаю синтаксическую ошибку. Есть идеи?

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

SELECT, коробка не заселять.

Оказалось, что плагин 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(); 
    }); 
} 

SELECT, коробка:

<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

Большое спасибо. Я собрал то, что я понял, как ваша рекомендация, но все равно не повезло. Возможно, я все еще что-то пропустил. Не могли бы вы объединить весь код? BTW: Я попробовал ссылку, и мне потребуется немного больше времени для ее обработки. – Kenny

+0

еще раз спасибо. Очевидно, что-то происходит. Он все еще не заселен. См. Снимок выше. Верхний показывает, что SELECT работает, если параметры статически ставятся в поле SELECT. В нижней части экрана отображается пустое поле