return $('[name="' + name + '"],[name="' + name + '[]"]');
}
- /**
- * Find the name of the given element
- * @param {EventTarget} el
- * @returns {String}
- */
- function getElementName(el) {
- return $(el).attr('name').replace(/\[]/, '');
- }
-
/**
* Check to see whether a particular condition is met
* @param {*|jQuery|HTMLElement} $dependon
}
/**
- * Show / hide the elements that depend on the element(s) with the given name
- * OR (if no dependonname given) the element(s) with the same name as the element that
- * triggered the event e.
- * @param {Event} e
- * @param {String} dependonname (optional)
+ * Show / hide the elements that depend on some elements.
*/
- function updateDependencies(e, dependonname) {
- dependonname = dependonname || getElementName(e.currentTarget);
- var $dependon = getElementsByName(dependonname);
- if (!dependencies.hasOwnProperty(dependonname)) {
- return;
- }
- // Process all dependency conditions related to the updated element.
+ function updateDependencies() {
+ // Process all dependency conditions.
var toHide = {};
- $.each(dependencies[dependonname], function(condition, values) {
- $.each(values, function(value, elements) {
- var hide = checkDependency($dependon, condition, value);
- $.each(elements, function(idx, elToHide) {
- if (toHide.hasOwnProperty(elToHide)) {
- toHide[elToHide] = toHide[elToHide] || hide;
- } else {
- toHide[elToHide] = hide;
- }
+ $.each(dependencies, function(dependonname) {
+ var dependon = getElementsByName(dependonname);
+ $.each(dependencies[dependonname], function(condition, values) {
+ $.each(values, function(value, elements) {
+ var hide = checkDependency(dependon, condition, value);
+ $.each(elements, function(idx, elToHide) {
+ if (toHide.hasOwnProperty(elToHide)) {
+ toHide[elToHide] = toHide[elToHide] || hide;
+ } else {
+ toHide[elToHide] = hide;
+ }
+ });
});
});
});
var $el = getElementsByName(depname);
if ($el.length) {
$el.on('change', updateDependencies);
- updateDependencies(null, depname);
}
});
+ updateDependencies();
}
/**