mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
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:
parent
9dabd071fe
commit
a321181fe6
2
lib/amd/build/showhidesettings.min.js
vendored
2
lib/amd/build/showhidesettings.min.js
vendored
@ -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
@ -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 + '["]');
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user