Reputation: 3917
I need to allow users to choose/input authors associated with a given publication and there could be just a single author or (43 = the most I have seen so far) up to 40+. Needless to say creating a static form to collect the data will not do since there is no way to know ahead of time how many authors there are.
My original plan was to use a multi-select box that is pre-populated (dynamically) with a list of current employees that could potentially be authors. This is all fine and good EXCEPT for the fact that authors need to have an "order" associated with them so that they get proper credit for first author, second author, etc ... Given this little detail using a multi-select by itself will not work. I have thought about just doing something in which table rows are added dynamically but even with that approach the thought of a 40+ row table just for author input is somewhat nausiating.
Does anyone have any clever ideas on how to handle this?
Upvotes: 0
Views: 152
Reputation: 2613
Option 1: Ask for the number of authors before, then automatically build that form for each user
Option 2 (more work, in my opinion better usability): Your form has initially two entries. If the first is filled, a third appears. If the second is filled, a fourth appears. If the n'th is filled, the (n+2)th appears, until the user is done. A "More Authors..." button or something should be strategically placed to give the user who sees the form for the first time an idea that there can be more than two authors. Maybe it's better to write "Start filling for more author slots to appear", but that seems way too many words.
Upvotes: 0
Reputation: 321668
You could use a dual draggable / sortable list control like this. The list on the left would be "all authors" and on the right would be "authors associated with this publication".
In the example I linked to you can sort the left hand list as well as moving items between lists, but I'm sure you could disable that.
Upvotes: 1
Reputation: 10095
look at realisation of tags here on Stack Overflow. maybe it is what you need
Upvotes: 0