Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. /* ========================================================================
  2. // Multi Select
  3. // ========================================================================*/
  4.  
  5. /* ------------------------------------------------------------------------
  6. // Limiter
  7. // ------------------------------------------------------------------------*/
  8.  
  9. function multiSelectLimiterAfterInit(that, container){
  10. that.selectLimit = (that.$element.attr('data-select-limit') !== "") ? parseInt(that.$element.attr('data-select-limit')) : -1;
  11. that.selectCount = that.$element.find(':selected').length;
  12. if(that.$element.data('initialized') !== true && that.selectLimit > -1) {
  13. that.$element.data('initialized', true);
  14. multiSelectLimiterUpdate(that);
  15. }
  16. }
  17.  
  18. function multiSelectLimiterAfterSelect(that, values){
  19. if(values){
  20. that.selectCount += values.length;
  21. }
  22. multiSelectLimiterUpdate(that);
  23. }
  24.  
  25. function multiSelectLimiterAfterDeselect(that, values){
  26. if(values){
  27. that.selectCount -= values.length;
  28. }
  29. multiSelectLimiterUpdate(that);
  30. }
  31.  
  32. function multiSelectLimiterUpdate(that){
  33.  
  34. var selectedValues = that.$element.val();
  35.  
  36. if(that.selectCount >= that.selectLimit){
  37. that.$element.children().each(function(){
  38. if(!$.contains(selectedValues, this.value)){
  39. $(this).attr('disabled', 'disabled');
  40. }
  41. });
  42.  
  43. that.$selectableUl.children().addClass(that.options.disabledClass);
  44.  
  45. }
  46. else{
  47. that.$element.children().removeAttr('disabled');
  48. that.$selectableUl.children().removeClass(that.options.disabledClass);
  49. }
  50.  
  51. }
  52.  
  53. /* ------------------------------------------------------------------------
  54. // Initialize
  55. // ------------------------------------------------------------------------*/
  56.  
  57. $('.searchable').multiSelect({
  58. afterInit: function(container){
  59. multiSelectLimiterAfterInit(this, container);
  60. },
  61. afterSelect: function(values){
  62. multiSelectLimiterAfterSelect(this, values);
  63. },
  64. afterDeselect: function(values){
  65. multiSelectLimiterAfterDeselect(this, values);
  66. }
  67. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement