toggleForm validates rules of hidden items
TheLegs opened this issue · comments
Version: 3.1.6
Bug Description
When there are toggle rules nested into elements which are in turn subjects of possible toggling, a specific situation may occur where, if a value was set while the item was displayed, but then the item is hidden, toggleForm()
will continue to evaluate those rules against the hidden items. The consequence is that, for example, certain items keep being displayed when they should not be, or the user might not be able to submit a form due to a validation issue on an item that is hidden.
Steps To Reproduce
Set for example the following radio buttons:
item1
with a rule to toggleitem2
on a certain valueitem2
with a rule to toggleitem3
item4
with a rule to toggleitem3
, anditem5
that has no toggle rules set
Then select item1
in order to toggle item2
, then item2
in order to toggle item3
.
Lastly, select item5
.
Expected Behavior
When selecting item5
, you should no longer see item3
.
Possible Solution
toggleForm()
should only call toggleControl()
on controls that currently displayed.
Plus, I think the controls should be also reset when toggled out, to prevent data from being submitted unbeknownst to the user.
forms/src/assets/netteForms.js
Lines 611 to 616 in ffdffaa