Limit number of selections in multiple select

How can I limit the number of selections in multiple select? Say, a
user should not be able to select more than 5 values in a multiple
selection box. I am following the multiple select example here:
http://www.gilluminate.com/2007/02/15/best-way-to-do-multiple-select-combo-boxes-in-rails/
. Thanks.

I don’t think you can with Rails (well, you could do it with validation
on
the model) but it’s easy enough with jQuery.

Assuming you have a text box like this:

option1 option2 option3 option4 option5 option6 option7

You can do this:

Or take whatever action you want, but basically $(sel).val() returns an
array for multiple select boxes.

Cheers,

Andy


Andy J.
http://andyjeffries.co.uk/ #rubyonrails #mysql #jquery
Registered address: 64 Sish Lane, Stevenage, Herts, SG1 3LS
Company number: 5452840

On 24 February 2010 11:12, Andy J. [email protected] wrote:

(well, you could do it with validation on the model)

Isn’t that where it would be best?

You can do this:

but of course, we all know that relying solely on JS for validation is
a sure method for letting duff data get into your DB (because not
every browser has JS enabled or supported)

By all means, use the JS to enhance the front end; but if you have to
ensure there’s no more than a certain amount of associations, you
have to check that in the model.
You could also check the params array coming into the controller, and
see what the size is there (unfortunately, I don’t have time right
this second to try it out, but if you haven’t sorted it yourself
later, re-post for help and I’ll have a play)

(well, you could do it with validation on the model)

Isn’t that where it would be best?

I agree.

By all means, use the JS to enhance the front end; but if you have to
ensure there’s no more than a certain amount of associations, you
have to check that in the model.
You could also check the params array coming into the controller, and
see what the size is there (unfortunately, I don’t have time right
this second to try it out, but if you haven’t sorted it yourself
later, re-post for help and I’ll have a play)

Completely agree with this.

Cheers,

Andy

Thank you all so much. Validation at the model level is an excellent
idea. I should have thought about that. I am still getting into the
habit of thinking the rails way.