Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #html
- <div class="input-field col s12 l5">
- <i class="material-icons prefix">search</i>
- <%= form.text_field :cidades, class: "autocomplete", tabindex: 15 %>
- <%= form.label :cidades, "Cidade" %>
- <%= form.hidden_field :cidade_id %>
- </div>
- </div>
- #javascript
- function delay(callback, ms) {
- var timer = 0;
- return function () {
- var context = this, args = arguments;
- clearTimeout(timer);
- timer = setTimeout(function () {
- callback.apply(context, args);
- }, ms || 0);
- };
- }
- $(document).ready(function () {
- var res = {};
- $('#nfe_destinatario_cidades').autocomplete({
- data: res,
- minLenght: 3,
- onAutocomplete: function () {
- $.getJSON('<%= auto_completes_busca_cidade_id_url %>', {termo: $('#nfe_destinatario_cidades').val()}, function (data) {
- var arr = data;
- for (var i = 0; i < arr.length; i++) {
- alert(arr[i].id);
- $('#nfe_destinatario_cidade_id').val(arr[i].id);
- }
- });
- }
- });
- $('#nfe_destinatario_cidades').keyup(delay(function () {
- $.getJSON('<%= auto_completes_cidade_estado_pais_path %>', {termo: $('#nfe_destinatario_cidades').val()}, function (data) {
- var arr = data;
- for (var i = 0; i < arr.length; i++) {
- res[arr[i].name] = null;
- }
- $('#nfe_destinatario_cidades').autocomplete('updateData', res);
- });
- }, 600));
- });
- #Controller Para busca dos dados
- def cidade_estado_pais
- lista = { id: nil, label: nil, name: nil }
- if params[:termo]
- @cidades = Geo::Cidade.busca(params[:termo]).limit(6)
- lista = @cidades.map { |c| {:id => c.id, :label => c.nome, :name => c.cidade_uf_pais}
- }
- end
- render json: lista
- end
- def busca_cidade_id
- lista = { id: nil, name: nil }
- if params[:termo]
- @cidades = Geo::Cidade.busca_autocomplete(params[:termo]).limit(1)
- lista = @cidades.map { |c| {:id => c.id, :name => c.nome}
- }
- end
- render json: lista
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement