Advertisement
timeshifter

cascadia

Oct 4th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function ($) {
  2.     $.fn.cascade = function(child) {
  3.         return this.each(function() {
  4.             var c;
  5.             if(child==undefined)
  6.                 c=document.getElementById($(this).attr('data-child').replace('#', ''));
  7.             else
  8.                 c=child;
  9.  
  10.             if(c!=undefined){
  11.                 var o = [];
  12.                 for (var i = 0; i < c.options.length; i++) {
  13.                     var n = {};
  14.                     for (var e = 0; e < c.options[i].attributes.length; e++) {
  15.                         n[c.options[i].attributes[e].name] = c.options[i].attributes[e].nodeValue;
  16.                     }
  17.                     n.html = c.options[i].innerHTML;
  18.                     o.push(n);
  19.                 }
  20.                 c.items = o;
  21.  
  22.                 var val = $(c).val();
  23.  
  24.                 $(this).change(function () {
  25.                     var data = c.items;
  26.  
  27.                     var s = '';
  28.                     for (var i = 0; i < data.length; i++) {
  29.  
  30.                         if (data[i]['data-fk'] == undefined || data[i]['data-fk'] == $(this).val() ||
  31.                                         $(this).val() == $(this).attr('data-default') ||
  32.                                         data[i]['value'] == '' || $(this).val() == '' ||
  33.                                         data[i]['value'] == '-1' || $(this).val() == '-1') {
  34.                             s += '<option';
  35.                             for (v in data[i])
  36.                                 if (v != 'html')
  37.                                     s += ' ' + v + '="' + data[i][v] + '"';
  38.                             s += '>' + data[i].html + '</option>';
  39.                         }
  40.                     }
  41.                     c.innerHTML = s;
  42.                     $(c).groupDropdown();
  43.                 });
  44.                 if($(this).val()!=$(this).find('option:first-child').val())
  45.                     $(this).change();
  46.             }
  47.         });
  48.     };
  49. })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement