Forums / Setup & design / Poll - how to disable empty user input
Marko Žmak
Saturday 22 July 2006 10:17:18 am
The title says it all. I want to disable collecting informaation in poll when the user didn't input anything (e.g. no radio button was selected). The current behaviour of eZ in this case i to increase the number of votes, but not to include this vote in any answer. So the summ of all votes for each answer now doesn't match the total votes count.
Is it possible to disable this?
-- Nothing is impossible. Not if you can imagine it! Hubert Farnsworth
Andrew Kelly
Tuesday 08 August 2006 3:30:32 am
[Me too post]
I'd also very much like this answer as well. Not only is the total vote count skewed, but the "voted" cookie is also set, so if somebody mistakenly hits the vote button without making a selection and thentries to correct their mistake, they are told they already voted.
For what it's worth, I think a page recycle would be the best solution rather than an error message of some kind. (but let's see if we even get that far first).
Andy
Thursday 10 August 2006 7:24:10 am
Hi Marko,
here's how I dealt with the issue:
1. Edit (or create) settings/override/collect.ini.append.php
In section [CollectionSettings] addCollectionUserDataList[poll]=overwrite (was probably unique)
Then,
2. Edit the active ezoption.tpl file, removing the "checked" sections
3. Add JavaScript to the poll form so that a blank vote doesn't get sent.For example,
<b>in poll form</b> onSubmit="return validatePoll(document.pollForm.ContentObjectAttribute_data_option_value_{$poll.0.data_map.question.id})" <b>in page head</b> {literal} <script type="text/javascript"> <!-- function validatePoll(rObj){ for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return true; alert("Please make a selection before voting."); return false; } //--> </script> {/literal}
It's dependant on JS, which makes it a cheap hack, but it gets the job done.