forked from tuupola/jquery_chained
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjquery.chained.remote.min.js
More file actions
3 lines (2 loc) · 1.56 KB
/
jquery.chained.remote.min.js
File metadata and controls
3 lines (2 loc) · 1.56 KB
1
2
3
/*! Chained 2.0.0-beta.7 - MIT license - Copyright 2010-2017 Mika Tuupola */
!function(a,b,c,d){"use strict";a.fn.remoteChained=function(b){var c=a.extend({},a.fn.remoteChained.defaults,b);return c.loading&&(c.clear=!0),this.each(function(){function b(b){var c=a(":selected",d).val();a("option",d).remove(),a.isArray(b)?a.each(b,function(b,e){a.each(e,function(b,e){if("selected"===b)c=e;else{var f=a("<option />").val(b).append(e);a(d).append(f)}})}):a.each(b,function(e,f){if(b.hasOwnProperty(e))if("selected"===e)c=f;else{var g=a("<option />").val(e).append(f);a(d).append(g)}}),a(d).children().each(function(){a(this).val()===c+""&&a(this).prop("selected",!0)}),1===a("option",d).length&&""===a(d).val()?a(d).prop("disabled",!0):a(d).prop("disabled",e)}var d=this,e=a(d).prop("disabled"),f=!1;a(c.parents).each(function(){a(this).bind("change",function(){var e={};a(c.parents).each(function(){var b=a(this).attr(c.attribute),f=(a(this).is("select")?a(":selected",this):a(this)).val();e[b]=f,c.depends&&a(c.depends).each(function(){if(d!==this){var b=a(this).attr(c.attribute),f=a(this).val();e[b]=f}})}),f&&a.isFunction(f.abort)&&(f.abort(),f=!1),c.clear&&(c.loading?b.call(d,{"":c.loading}):a("option",d).remove(),a(d).trigger("change")),f=a.getJSON(c.url,e,function(e){e=c.data(e),b.call(d,e),a(d).trigger("change")})}),c.bootstrap&&(b.call(d,c.bootstrap),c.bootstrap=null)})})},a.fn.remoteChainedTo=a.fn.remoteChained,a.fn.remoteChained.defaults={attribute:"name",depends:null,bootstrap:null,loading:null,clear:!1,data:function(a){return a}}}(window.jQuery||window.Zepto,window,document);