var old_values; $(function() { $("#formhandler-country").change(updateSelects); $("#formhandler-birthday").change(updateSelects); }); function updateSelects() { var job = []; $("#job-choices select, #job-choices input").each(function(i, e) { var key = $(e).attr("key"); if (!key) return; if ($(e).is("select")) { job[key] = $(e).find("option:selected").text(); } else if ($(e).is("input[type=radio]:checked")) { job[key] = $("label[for='" + $(e).attr("id") + "']").text(); } else if ($(e).is("input[type=checkbox]")) { job[key] = $(e).is(":checked"); } else { job[key] = $(e).val(); } $(e).off(); }); var data = getJobSelects(job); var divs = $("#job-choices").children(), lastDiv = divs[0]; for (var i = 0; i < data.length; i++) { var found = false; var hash = createHash(data[i]); for (var j = 0; j < divs.length && !found; j++) { if (hash == $(divs[j]).attr("data-hash")) { found = true; lastDiv = divs.splice(j, 1)[0]; } } if (!found) { lastDiv = insertSelect(data[i], lastDiv)[0]; } } for (var j = 1; j < divs.length; j++) { $(divs[j]).remove(); } $("#job-choices select, #job-choices input").change(updateSelects); } function insertSelect(select, lastDiv) { var html = '