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-01 07:04:21 +11:00
parent 9dabd071fe
commit a321181fe6
3 changed files with 5 additions and 3 deletions

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

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 + '["]');
}
/**