Issue when using SPArrangeChoices in Sharepoint 2013

Apr 1, 2015 at 3:14 PM
I'm trying to use SPArrrangeChoices on a custom survey list in SharePoint 2013 using SPServices-2014.02. The questions have radio boxes labeled 1 through 5. I set the perRow to 5. The page only displays the "5" radiobox, all the others hidden.

If I use SPServices-2014.01 the radioboxes display correctly, but the selected choices are not recorded.

Any help will be greatly appreciated.
May 5, 2015 at 10:04 PM
I am having the same issue.

I'm using SP online, JQuery 2.1.4, SPServices 2014.02.
Nov 19, 2015 at 6:54 PM
Edited Nov 19, 2015 at 9:33 PM
Had the exact same problem with SP2013 on premise, JQuery 1.11.3, and SPServices 2014.02. Reverting to SPServices 2014.01 made them all display but wouldn't save.

For me the issue was on lines 3228 to 3234 of the non-minified; the .find("tr:last") was breaking the newChoiceTable object append so all the choices were not getting added. Seems like it keeps the display order just fine without it so I just removed it, but I am not using fill-in-choices so no warranty that it will work with them. :)

Also the modulus check to apply the perRow option was ending the rows one index too early - logic was correct, just needs to be moved after the table append of the current array index instead of before.

This code fixed these issues for me in the non-minified file replacing for the above rows:
for (i = 0; i < columnOptions.length; i++) {
                // If we've already got perRow columnOptions in the row, close off the row
                if ((i + 1) % opt.perRow === 0) {
You can also change the "for" in the minified using the above logic, but much easier to break things so proceed with caution.

Hope this helps someone - excellent library :)
May 12, 2016 at 4:55 PM
I had the same trouble, came from the same lines (3228 to 3234) but had to make a different correction:
            //Iterate over all available choices placing them in the correct position in the new choices table.
            for (i = 0; i < columnOptions.length; i++) {
                // If we've already got perRow columnOptions in the row, close off the row
                if (i % opt.perRow === 0) {
If it can help :)