unselect2

Replaces the <select> but looks like and behaves like the <select>.

Watch: 30 seconds

The native <select> cannot be styled, so there is not one here — not hidden, not one per field, zero. A listbox handles every interaction, and it looks like and behaves like the control it replaced. On a touchscreen the platform picker is replaced too, and that is the cost.

Submission stays a plain form post — each field writes its choice into one <input type="hidden">, and that is what posts.

Two things this costs. Native constraint validation is gone: required is the library's check and this server's, never the browser's. And with JavaScript off there is no field at all — the markup is inert until the script runs, and nothing is submitted for it.

Nothing on this page touches a chain.

Greater Metropolitan Los Angeles
New York
Chicago
Miami
Seattle
Engineering
Healthcare
Finance
Clerical
Legal
High School
Associate Degree
Bachelors Degree
Masters Degree
Ph.D
US — Pacific
US — Atlantic
Brazil
United Kingdom
Germany
Poland — at capacity
Japan
Australia
Singapore

Try Home End PageUp PageDown Enter Esc, or type a name.

Vendored at commit 3ce7ebesource.