Skip to content

Instantly share code, notes, and snippets.

@EddyRespondek
Created May 31, 2017 02:08
Show Gist options
  • Save EddyRespondek/9307d025b81869eb11dff626a2b5973b to your computer and use it in GitHub Desktop.
Save EddyRespondek/9307d025b81869eb11dff626a2b5973b to your computer and use it in GitHub Desktop.
gf-suburbs-select.js
$("#suburbs_lookup").autocomplete({
minLength:3,
source: function (request, response) {
var term = request.term;
$.ajax({
type: 'POST',
url: 'http://ppdre.com.au/autosuggest/',
dataType: 'json',
data: {
match: term,
lt: 'all'
},
crossDomain: false,
beforeSend: function ( xhr ) {
//xhr.setRequestHeader( 'X-WP-Nonce', wpApiSettings.nonce );
},
success: function (data) {
var suggestions_el = $('#suburb_picklist');
suggestions_el.addClass('active').removeClass('error');
$('ul', suggestions_el).empty();
var rows = '';
var i = 0;
$.each(data, function(key, value) {
i++;
rows += '<li tabindex="' + i + '" data-query="' + _.escape(value['lookup']) + '" data-text="' + _.escape(value['lookup']) + '">' + value['lookup'] + '<span class="add">Add...</span></li>';
});
$('ul', suggestions_el).append(rows);
},
error: function() {
var suggestions_el = $('#suburb_picklist');
suggestions_el.addClass('active').addClass('error');
}
});
}
});
$(document).on('click', '.ginput_container_suburbs #suburb_picklist li', function(e) {
e.preventDefault();
if ( $('.ginput_container_suburbs').length ) {
var form_id = $('.ginput_container_suburbs').data('form');
var field_id = $('.ginput_container_suburbs').data('field');
if ( form_id && field_id ) {
var input_id = '#input_' + form_id + '_' + field_id;
var input_text = $(this).data('text');
if ( !$('li input[value="' + input_text + '"]', input_id).length ) {
var input_count = $('li', input_id).length + 1;
var row = '<li class="gchoice_' + form_id + '_' + field_id + '_' + input_count + '"><input autocomplete="off" name="input_' + field_id + '.' + input_count + '" type="checkbox" value="' + input_text + '" id="choice_' + form_id + '_' + field_id + '_' + input_count + '" tabindex="8" checked="checked"><label for="choice_' + form_id + '_' + field_id + '_' + input_count + '" id="label_' + form_id + '_' + field_id + '_' + input_count + '">' + input_text + '</label></li>';
$(input_id).append(row);
}
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment