MDL-69748 core: Fix hideif issue with array elements

Changed the element selector to get all array elements,
whether named or unnamed. The previus selector was only
working for elements that thir names were like name="something[]".
It was not working for name="something[a]" elements.
This commit is contained in:
Shamim Rezaie
2021-02-04 14:38:53 +11:00
parent cd2e91aa18
commit e0f895ea8e
3 changed files with 5 additions and 3 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
define ("core/showhidesettings",["jquery"],function(a){var n;function b(a){return a.is("input[type=hidden]")&&a.siblings("input[type=checkbox][name=\""+a.attr("name")+"\"]").length}function c(a,b){return a.is("input[type=radio]")&&a.attr("value")!==b}function d(a,d){return!b(a)&&!c(a,d)}function e(a){return a.is("input[type=radio]")&&!a.prop("checked")}function f(a){return a.is("input[type=checkbox]")&&!a.prop("checked")}function g(a){return a.is("select")&&a.prop("multiple")}function h(a,b){var c=a.val()||[];if(!b.length){return!1}if(c.length!==b.length){return!1}for(var d in c){if(c.hasOwnProperty(d)){if(-1===b.indexOf(c[d])){return!1}}}return!0}var o={notchecked:function notchecked(b,c){var e=!1;c=c+"";b.each(function(b,f){var g=a(f);if(d(g,c)){e=e||!g.prop("checked")}});return e},checked:function checked(b,c){var e=!1;c=c+"";b.each(function(b,f){var g=a(f);if(d(g,c)){e=e||g.prop("checked")}});return e},noitemselected:function noitemselected(b){var c=!1;b.each(function(b,d){var e=a(d);c=c||-1===e.prop("selectedIndex")});return c},eq:function eq(c,d){var i=!1,j=!1;d=d+"";c.each(function(c,k){var l=a(k);if(e(l)){return}if(b(l)){j=l.val()===d;return}if(f(l)){i=i||j;return}if(g(l)){var m=d.split("|");i=h(l,m);return}i=i||l.val()===d});return i},in:function _in(c,d){var i=!1,j=!1,k=d.split("|");c.each(function(c,d){var l=a(d);if(e(l)){return}if(b(l)){j=-1<k.indexOf(l.val());return}if(f(l)){i=i||j;return}if(g(l)){i=h(l,k);return}i=i||-1<k.indexOf(l.val())});return i},defaultCondition:function defaultCondition(c,d){var i=!1,j=!1;d=d+"";c.each(function(c,k){var l=a(k);if(e(l)){return}if(b(l)){j=l.val()!==d;return}if(f(l)){i=i||j;return}if(g(l)){var m=d.split("|");i=!h(l,m);return}i=i||l.val()!==d});return i}};function i(b){return a("[name=\""+b+"\"],[name=\""+b+"[]\"]")}function j(a,b,c){if("function"==typeof o[b]){return o[b](a,c)}return o.defaultCondition(a,c)}function k(){var b={};a.each(n,function(c){var d=i(c);a.each(n[c],function(c,e){a.each(e,function(e,f){var g=j(d,c,e);a.each(f,function(a,c){if(b.hasOwnProperty(c)){b[c]=b[c]||g}else{b[c]=g}})})})});a.each(b,function(b,c){i(b).each(function(b,d){var e=a(d).closest(".form-item");if(e.length){if(c){e.hide()}else{e.show()}}})})}function l(){a.each(n,function(a){var b=i(a);if(b.length){b.on("change",k)}});k()}function m(){a(".form-dependenton").hide()}return{init:function init(a){n=a.dependencies;l();m()}}});
define ("core/showhidesettings",["jquery"],function(a){var n;function b(a){return a.is("input[type=hidden]")&&a.siblings("input[type=checkbox][name=\""+a.attr("name")+"\"]").length}function c(a,b){return a.is("input[type=radio]")&&a.attr("value")!==b}function d(a,d){return!b(a)&&!c(a,d)}function e(a){return a.is("input[type=radio]")&&!a.prop("checked")}function f(a){return a.is("input[type=checkbox]")&&!a.prop("checked")}function g(a){return a.is("select")&&a.prop("multiple")}function h(a,b){var c=a.val()||[];if(!b.length){return!1}if(c.length!==b.length){return!1}for(var d in c){if(c.hasOwnProperty(d)){if(-1===b.indexOf(c[d])){return!1}}}return!0}var o={notchecked:function notchecked(b,c){var e=!1;c=c+"";b.each(function(b,f){var g=a(f);if(d(g,c)){e=e||!g.prop("checked")}});return e},checked:function checked(b,c){var e=!1;c=c+"";b.each(function(b,f){var g=a(f);if(d(g,c)){e=e||g.prop("checked")}});return e},noitemselected:function noitemselected(b){var c=!1;b.each(function(b,d){var e=a(d);c=c||-1===e.prop("selectedIndex")});return c},eq:function eq(c,d){var i=!1,j=!1;d=d+"";c.each(function(c,k){var l=a(k);if(e(l)){return}if(b(l)){j=l.val()===d;return}if(f(l)){i=i||j;return}if(g(l)){var m=d.split("|");i=h(l,m);return}i=i||l.val()===d});return i},in:function _in(c,d){var i=!1,j=!1,k=d.split("|");c.each(function(c,d){var l=a(d);if(e(l)){return}if(b(l)){j=-1<k.indexOf(l.val());return}if(f(l)){i=i||j;return}if(g(l)){i=h(l,k);return}i=i||-1<k.indexOf(l.val())});return i},defaultCondition:function defaultCondition(c,d){var i=!1,j=!1;d=d+"";c.each(function(c,k){var l=a(k);if(e(l)){return}if(b(l)){j=l.val()!==d;return}if(f(l)){i=i||j;return}if(g(l)){var m=d.split("|");i=!h(l,m);return}i=i||l.val()!==d});return i}};function i(b){return a("[name=\""+b+"\"],[name^=\""+b+"[\"]")}function j(a,b,c){if("function"==typeof o[b]){return o[b](a,c)}return o.defaultCondition(a,c)}function k(){var b={};a.each(n,function(c){var d=i(c);a.each(n[c],function(c,e){a.each(e,function(e,f){var g=j(d,c,e);a.each(f,function(a,c){if(b.hasOwnProperty(c)){b[c]=b[c]||g}else{b[c]=g}})})})});a.each(b,function(b,c){i(b).each(function(b,d){var e=a(d).closest(".form-item");if(e.length){if(c){e.hide()}else{e.show()}}})})}function l(){a.each(n,function(a){var b=i(a);if(b.length){b.on("change",k)}});k()}function m(){a(".form-dependenton").hide()}return{init:function init(a){n=a.dependencies;l();m()}}});
//# sourceMappingURL=showhidesettings.min.js.map
File diff suppressed because one or more lines are too long
+3 -1
View File
@@ -246,7 +246,9 @@ define(['jquery'], function($) {
* @returns {*|jQuery|HTMLElement}
*/
function getElementsByName(name) {
return $('[name="' + name + '"],[name="' + name + '[]"]');
// For the array elements, we use [name^="something["] to find the elements that their name begins with 'something['/
// This is to find both name = 'something[]' and name='something[index]'.
return $('[name="' + name + '"],[name^="' + name + '["]');
}
/**