Here is how I saw here and successfully applied:
var select2 = $( '#city' ).select2({ initSelection : function( element, callback ) { var data = { id: element.val(), text: element.val() }; callback(data); }, minimumInputLength: 2, ajax: { url: "/city", dataType: 'jsonp', data: function( term, page ){ return { q: term, page_limit: 10 }; }, results: function( data, page ){ return { results: data.content.result }; } }, }).data( 'select2' ); select2.onSelect = ( function( fn ){ return function( data, options ){ $( '#city_id' ).val( data.id ); return fn.apply( this, arguments ) }; })( select2.onSelect );
source share