Skip to content

Commit

Permalink
Merge pull request #23 from dnasir/dev
Browse files Browse the repository at this point in the history
Minor bug fixes
  • Loading branch information
dnasir committed Feb 27, 2014
2 parents 406c489 + 39d9b42 commit ec8e4dd
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
13 changes: 10 additions & 3 deletions demo.html
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,11 @@ <h6>Code</h6>
requires: ['.step1', '.step2'],
onChange: function(event, value, requiredValues) {
// do stuff

// event is the change event object for the current dropdown
// value is the current dropdown value
// requiredValues is an object with required dropdown values
// requirementsMet is a boolean value to indicate if all requirements (including current dropdown having a value) have been met
}
}
]
Expand Down Expand Up @@ -191,7 +194,7 @@ <h6>Code</h6>
}));
});
},
onChange: function(event, value, requiredValues){
onChange: function(event, value, requiredValues, requirementsMet){
// do stuff
}
}
Expand Down Expand Up @@ -307,7 +310,9 @@ <h6>Code</h6>
{
selector: '.step3',
requires: ['.step1', '.step2'],
onChange: function(event, value, requiredValues) {
onChange: function(event, value, requiredValues, requirementsMet) {
if(!requirementsMet) return;

example1.loading(true);

var ajaxData = requiredValues;
Expand Down Expand Up @@ -359,7 +364,9 @@ <h6>Code</h6>
}));
});
},
onChange: function(event, value, requiredValues) {
onChange: function(event, value, requiredValues, requirementsMet) {
if(!requirementsMet) return;

example2.loading(true);

var ajaxData = requiredValues;
Expand Down
13 changes: 9 additions & 4 deletions jquery.cascadingdropdown.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* jQuery Cascading Dropdown Plugin 1.2.3
* jQuery Cascading Dropdown Plugin 1.2.4
* https://github.com/dnasir/jquery-cascading-dropdown
*
* Copyright 2013, Dzulqarnain Nasir
Expand Down Expand Up @@ -40,7 +40,8 @@
// Init event handlers
if(typeof self.options.onChange === 'function') {
self.el.change(function(event) {
self.options.onChange.call(self, event, self.el.val(), self.getRequiredValues());
var requirementsMet = self._requirementsMet() && self.el[0].value;
self.options.onChange.call(self, event, self.el.val(), self.getRequiredValues(), requirementsMet);
});
}

Expand Down Expand Up @@ -153,6 +154,7 @@

// If required dropdowns have no value, return
if(!self._requirementsMet()) {
self.setSelected(0);
self._triggerReady();
return self.el;
}
Expand All @@ -164,6 +166,9 @@
return self.el;
}

// Reset the dropdown value so we don't trigger a false call
self.el.val('').change();

// Fetch data from required dropdowns
var data = self.getRequiredValues();

Expand Down Expand Up @@ -226,7 +231,7 @@
_triggerReady: function() {
if(!this.initialised) {
this.initialised = true;
this.el.trigger('ready');
this.el.triggerHandler('ready');
}
},

Expand All @@ -242,7 +247,7 @@

// If given value is a string, get the index where it appears in the dropdown
if(typeof indexOrValue === 'string') {
indexOrValue = dropdownItems.index(dropdownItems.filter('[value="' + indexOrValue +'"]')[0]);
indexOrValue = dropdownItems.index(dropdownItems.filter(function() { return this.value === indexOrValue; })[0]);
}

// If index is undefined or out of bounds, do nothing
Expand Down

0 comments on commit ec8e4dd

Please sign in to comment.