To make it short: In the database table lime_settings_global, in the stg_name column and in the variable "shownoanswer" ensure the value "2".
I have a Limesurvey Community Edition server hosted in our own infrastructure. I had the problem of being unable to eliminate the "no answer" option no matter what soft switch of the interface I hat tried. Finally, I realized that the problem was a "frozen" database setting.
In past editions the "no answer" setting was a global option. In the Limesurvey
online manual
(covering older versions) it is stated that the global settings are handled via the "Configuration > Settings > Global" interface which override all other settings per user/ per survey. Therein, in Presentation, it says that there is an option to set "Show 'no answer' option for non-mandatory questions" but this is not shown in the menus of the new versions, because this control was passed to the user and the survey choices.
The global options of Limesurvey are stored in the table lime_settings_global . In the stg_name column and in the variable shownoanswer the value in our base was set to "1" , which meant "On" for "no answer" and there was no way to change it. I manually changed the value to "0" and it changed the behavior globally, but again it was not affected by user's nor the survey's choices. In the end, I found in the code of Limesurvey that new versions should come with a default value of "2" which means changeability by each user's and survey's choices. Since we don't do a clean installation but an upgrade, we were stuck with the variable shownoanswer="1".
Now, after the change, in the relevant option from "Configuration > Settings > Global survey > Presentation > Show... > ...no answer" the behavior per user is affected, as it should be.....
Hope that helps!
Kostis