diff --git a/lib/form/form.js b/lib/form/form.js index d838008050d..4fc331fdf22 100644 --- a/lib/form/form.js +++ b/lib/form/form.js @@ -273,7 +273,11 @@ if (typeof M.form.dependencyManager === 'undefined') { els.each(function(node) { var e = node.ancestor('.fitem', true); if (e) { - (hidden) ? e.setAttribute('hidden', 'hidden') : e.removeAttribute('hidden'); + if (hidden) { + e.setAttribute('hidden', 'hidden'); + } else { + e.removeAttribute('hidden'); + } e.setStyles({ display: (hidden) ? 'none' : '' }); diff --git a/lib/form/tests/behat/hideif.feature b/lib/form/tests/behat/hideif.feature index 4856767e992..f4945129b97 100644 --- a/lib/form/tests/behat/hideif.feature +++ b/lib/form/tests/behat/hideif.feature @@ -18,7 +18,7 @@ Feature: hideIf functionality in forms Then I should see "Test eq hideif" And "#id_testeqhideif" "css_element" should be visible And I press "Submit" - And I should see "Number of submitted form elements: 6" + And I should see "Number of submitted form elements: 7" And I should see "[testeqhideif] =>" Scenario: When 'eq' hideIf conditions are met, the relevant elements are hidden @@ -26,7 +26,7 @@ Feature: hideIf functionality in forms Then I should not see "Test eq hideif" And "#id_testeqhideif" "css_element" should not be visible And I press "Submit" - And I should see "Number of submitted form elements: 5" + And I should see "Number of submitted form elements: 6" And I should not see "[testeqhideif] =>" Scenario: When 'checked' hideIf conditions are not met, the relevant elements are shown @@ -36,7 +36,7 @@ Feature: hideIf functionality in forms And "#id_testcheckedhideif" "css_element" should be visible And "#id_testnotcheckedhideif" "css_element" should not be visible And I press "Submit" - And I should see "Number of submitted form elements: 5" + And I should see "Number of submitted form elements: 6" And I should see "[testcheckedhideif] =>" And I should not see "[testnotcheckedhideif] =>" @@ -47,7 +47,7 @@ Feature: hideIf functionality in forms And "#id_testcheckedhideif" "css_element" should not be visible And "#id_testnotcheckedhideif" "css_element" should be visible And I press "Submit" - And I should see "Number of submitted form elements: 5" + And I should see "Number of submitted form elements: 6" And I should not see "[testcheckedhideif] =>" And I should see "[testnotcheckedhideif] =>" @@ -68,5 +68,5 @@ Feature: hideIf functionality in forms And I should not see "Files" And "#id_testinhideif" "css_element" should not be visible And I press "Submit" - And I should see "Number of submitted form elements: 5" + And I should see "Number of submitted form elements: 6" And I should not see "[testinhideif] =>" diff --git a/lib/form/tests/fixtures/formhideiftestpage.php b/lib/form/tests/fixtures/formhideiftestpage.php index d6240c28d12..463d4b56d59 100644 --- a/lib/form/tests/fixtures/formhideiftestpage.php +++ b/lib/form/tests/fixtures/formhideiftestpage.php @@ -28,6 +28,10 @@ require_once($CFG->libdir.'/formslib.php'); // Behat test fixture only. defined('BEHAT_SITE_RUNNING') || die('Only available on Behat test server'); +require_login(); +if (!is_siteadmin()) { + die('Admin only'); +} /** * Class hideif_form