Last active
August 31, 2015 23:56
-
-
Save victorjspinto/15a7390bc3438271b92e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<title></title> | |
</head> | |
<body> | |
<select id="paises"></select> | |
<select id="cidades"></select> | |
<button onclick="mostraPaisSelecionado()" > Click aqui !</button> | |
<script type="text/javascript" src="jquery-2.1.4.js"></script> | |
<script type="text/javascript"> | |
var paisesJson = 'https://raw.githubusercontent.com/lordviktor/sbac-web/Frontend/json/paises.json?token=AAvviUwJtoKC9LK-pO3S_Gp5ZIULsMSMks5V4kCewA%3D%3D'; | |
// var paisesJson = 'paises.json' | |
$('#paises').loadSelect(paisesJson, { | |
labelProperty: 'nome_pais' | |
}); | |
$('#cidades').loadSelect(paisesJson, { | |
labelProperty: 'nome_pais' | |
}); | |
function mostraPaisSelecionado() { | |
var selecionado = $('#paises').selected(); | |
console.log(selecionado); | |
} | |
</script> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function($) { | |
function loadData(url) { | |
var deferred = $.Deferred(); | |
$.ajax({ | |
url: url, | |
dataType: 'json', | |
success: deferred.resolve, | |
error: deferred.reject | |
}); | |
return deferred.promise(); | |
} | |
function loadSelect(select, data, options) { | |
$.each(data, function(index, value) { | |
var option = $('<option>', { | |
value: index, | |
text: value[options.labelProperty] | |
}); | |
$(select).append(option); | |
}); | |
} | |
$.fn.loadSelect = function(url, options) { | |
var select = this; | |
loadData(url) | |
.done(function(data) { | |
select.data(data); | |
loadSelect(select, data, options); | |
}); | |
}; | |
$.fn.getSelected = function() { | |
return this.data()[this.val()]; | |
} | |
$.fn.setSelected = function(item, identifier) { | |
var select = this; | |
$.each(this.data(), function(index, value) { | |
if(item[identifier] = value[identifier]) { | |
select.val(index); | |
} | |
}); | |
} | |
})($); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment