Skip to content

Instantly share code, notes, and snippets.

@vinniewrote
Created June 3, 2012 17:45
Show Gist options
  • Save vinniewrote/2864341 to your computer and use it in GitHub Desktop.
Save vinniewrote/2864341 to your computer and use it in GitHub Desktop.
Dropdown call
var years = [];
//use for dropdown
var epicorData = $.ajax({
url: "js/Sears_MkMdlBodyDoor_20120515.json",
dataType: "json",
success: function (incomingYears){
years = incomingYears;
selects = [
$("select#wfVehEnterMake"), // selects[0]
$("select#wfVehEnterModel"), // selects[1]
$("select#wfVehEnterTrim"), // selects[2]
$("select#wfVehEnterDoors") // selects[3]
]
enterYear = $('#wfVehEnterYear');
enterMake = $('#wfVehEnterMake');
enterModel = $('#wfVehEnterModel');
enterTrim = $('#wfVehEnterTrim');
enterDoors = $('#wfVehEnterDoors');
var selectedYear = years[0]
for(var year in years) {
$('<option>').val(year).text(year).appendTo(enterYear);
}
setMakesForSelectedYear = function() {
enterMake.empty();
$('<option>').val(0).text("Choose a Make").appendTo(enterMake);
for(var make in years[selectedYear]) {
$('<option>').val(make).text(make).appendTo(enterMake);
}
}
setModelsForSelectedMake = function() {
enterModel.empty();
$('<option>').val(0).text("Choose a Model").appendTo(enterModel);
for (var model in years[selectedYear][selectedMake]) {
$('<option>').val(model).text(model).appendTo(enterModel);
}
}
setTrimForSelectedMake = function() {
enterTrim.empty();
$('<option>').val(0).text("Choose a Body Style").appendTo(enterTrim);
for (var modelDetails in years[selectedYear][selectedMake][selectedModel])
{var epiTrim = years[selectedYear][selectedMake][selectedModel][modelDetails].bodyStyle
if (epiTrim === "undefined" || epiTrim === "")
{
enterTrim.remove();//doesnt resolve Object has no method to appendTo
}
else
{
$('<option>').val(epiTrim).text(epiTrim).appendTo(enterTrim);
}
}
}
setDoorsForSelectedMake = function() {
enterDoors.empty();
// var deDupeDoors = enterDoors.find('option').get();
// deDupeDoors = $.unique(deDupeDoors);
$('<option>').val(0).text("Select Number of Doors").appendTo(enterDoors);
for (var modelDetails in years[selectedYear][selectedMake][selectedModel])
{var epiDoors = years[selectedYear][selectedMake][selectedModel][modelDetails].numDoors
if (epiDoors === "undefined" || epiDoors === "")
{
enterDoors.remove();//doesnt resolve Object has no method to appendTo
}
else
{
$('<option>').val(epiDoors).text(epiDoors).appendTo(enterDoors);
}
}
}
enterYear.change(function(){
$.each(selects, function(index, select) { select.empty() });
selectedYear = $(this).find('option:selected').val();
setMakesForSelectedYear();
enterMake.show('fast', hideLoadingGif);
});
enterMake.change(function(){
$.each(selects.slice(1), function(index, select) { select.empty() });
selectedMake = $(this).find('option:selected').val();
setModelsForSelectedMake();
enterModel.show('fast', hideLoadingGif);
});
enterModel.change(function(){
$.each(selects.slice(2), function(index, select) { select.empty() });
selectedModel = $(this).find('option:selected').val();
setTrimForSelectedMake();
enterTrim.show('fast', hideLoadingGif);
});
enterTrim.change(function(){
$.each(selects.slice(3), function(index, select) { select.empty() });
modelDetails = $(this).find('option:selected').val();
setDoorsForSelectedMake();
enterDoors.show('fast', hideLoadingGif);
});
// showLoadingGif();
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment