Привет всем, у меня есть JSON-файл, который я должен загрузить, а затем заполнить данные. Элемент, который должен быть заполнен - это выпадающее меню с включенной библиотекой chosen
JQuery. Я задаюсь вопросом, правильно ли структурирован мой код, так как я получаю любые данные в выпадающем меню. Я вижу одну проблему в состоянии гонки между элементами JS и DOM. Я не уверен, является ли это причиной проблемы или, может быть, выбран JQuery. Если кто-нибудь знает лучший способ загрузить файл и заполнить данные, пожалуйста, дайте мне знать. Спасибо.
var appData = {};
$(document).ready(function() {
$.getJSON("JSON/Buildings.json", function(json) {
appData.Buildings = json;
var bldgMenu = $('.bldg-menu');
bldgMenu.find("option:gt(0)").remove();
$.each(appData.Buildings, function(key, value) {
alert(value.NUMBER);
bldgMenu.append($("<option></option>").val(value.NUMBER).text('(' + value.NUMBER + ') ' + value.NAME));
});
});
});
/*Example of my appData JS after JSON file is loaded
var appData = {
Buildings : [
{number:"56",name:"Big Grove"},
{number:"12",name:"Umbrella"}
]
}
*/
<script language="javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script language="javascript" src="Chosen/chosen.jquery.js"></script>
<link rel="stylesheet" href="Chosen/chosen.min.css">
<script language="javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script language="javascript" src="Bootstrap_Confirmation/bootstrap-confirmation.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<form name="frmSave" id="frmSave" class="frm-Submit" autocomplete="off">
<div class="form-group required">
<label class="control-label" for="buildings"><span class="label label-primary">Buildings:</span></label>
<select multiple class="form-control bldg-menu chosen-select" name="frm_bldg" id="frm_bldg" required>
<option value="">--Choose Building(s)--</option>
</select>
</div>
<div class="row">
<div class="form-group col-xs-12 col-sm-12 col-md-1 col-lg-1">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>