Sha256: cf6638a2f6203a8d1fdc1750c36c02409c025fba6c883b2d6f7bf87eac6bc213

Contents?: true

Size: 1.84 KB

Versions: 2

Compression:

Stored size: 1.84 KB

Contents

<script type="text/javascript">
  function splitAutocomplete( val ) {
    return val.split( /,\s*/ );
  }
  function extractLastAutocompleteRemoteMultiple( term ) {
    return splitAutocomplete( term ).pop();
  }


  $(function() {
    $('<%= dom_element %>')
  // don't navigate away from the field on tab when selecting an item
    .bind( "keydown", function( event ) {
      if ( event.keyCode === $.ui.keyCode.TAB &&
          $( this ).data( "autocomplete" ).menu.active ) {
        event.preventDefault();
      }
    })
    .autocomplete({
          minLength: 0,
      source: function( request, response ) {
        // delegate back to autocomplete, but extract the last term
        $.getJSON( '<%= source_path %>', {
          term: extractLastAutocompleteRemoteMultiple( request.term ),
          <% if defined? additional_params %>
            <%= additional_params.collect{|key, value| "#{key.to_s}: $(\"##{value.to_s}\").val()".html_safe}.join(',').html_safe %>
          <% end %>
        }, response );
      },
      focus: function() {
        // prevent value inserted on focus
        return false;
      },
      select: function( event, ui ) {
        $(this).val('');
        $('<%= ul %>').append( "<li><span>" + ui.item.label + '</span><input type="hidden" value="' + ui.item.value + '" id="<%= dom_element_id %>_' + ui.item.value + '" name="<%= dom_element_id %>[' + ui.item.value + ']" /><a href="#" class="<%= dom_element_id %>_remove_autocomplete">(X)</a></li>' );
        
        // call the callback function if exists
        if(typeof <%= "#{dom_element_id}_on_autocomplete_select" %> == 'function') {
          <%= "#{dom_element_id}_on_autocomplete_select" %>(event, ui);
        }
        
        return false;
      }
      });
  
    $(document).on('click', "<%= ul %> a", function() {
      $(this).parent().remove();
    });
  });

</script>

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mdd-3.1.4 app/views/template/mdwa/_autocomplete_remote_multiple_tag.html.erb
mdd-3.1.2 app/views/template/mdwa/_autocomplete_remote_multiple_tag.html.erb