wenzhixin/multiple-select for Vue 3 and jQuery Checkbox Selection
A jQuery plugin to select multiple elements with checkboxes :)
At a glance
- What is it?
- Multiple Select is a checkbox-based multiple-selection library with jQuery and Vue 3 compatibility. Version 2.x targets Vue 3, but the README delegates initialization and API details to external documentation.
- Who is it for?
- Adopt Multiple Select when a Vue 3 or jQuery application needs checkbox-based multiple selection and the external documentation provides the required component and plugin APIs. Do not choose it solely for its package metadata, because the README does not include initialization, event, styling, or accessibility details.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Vue, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Multiple Select Targets Checkbox-Based Collection Input
Multiple Select addresses a narrow interface problem: accepting more than one selection through checkboxes rather than a single-choice control. It is aimed at developers working with jQuery applications, and the current 2.x line also supports Vue 3. The repository describes the package as a jQuery plugin even though it includes Vue examples, Vue component builds, and Vue-related topics. That distinction matters when evaluating the dependency. A team choosing it for Vue should not assume that a plugin imported through jQuery is the only integration path available.
The interface is relevant where each option needs an independently visible selected state. Checkboxes communicate that state more directly than a closed dropdown, especially when a form presents a manageable number of choices. The README does not explain whether the library supports searchable lists, single-choice mode, disabled options, grouping, or large option collections, so those are not established capabilities here. Nor does it document native form submission behavior, validation rules, keyboard handling, or screen reader semantics.
This is therefore a UI selection component rather than a complete form system. Its usefulness depends on how well the missing integration details fit an application. The external documentation linked by the README is the authoritative place to determine whether its selection model matches the form design.
Package Entry Points Separate jQuery and Vue Builds
The package metadata names `dist/multiple-select.min.js` as the main entry point and marks the package as an ES module through `"type": "module"`. It also publishes `dist/`, `src/`, declarations, documentation files, and `multiple-select.jquery.json` through the package `files` list. That packaging arrangement gives consumers both generated distribution assets and source files, while the Vue-specific output is produced by a separate Vite build.
The build scripts show that these artifacts are not produced by one undifferentiated step. `rollup -c` builds the base JavaScript bundle, while the production command runs Rollup with `NODE_ENV=production` to create minified JavaScript. `vite build` creates a Vue UMD distribution and then renames it from `multiple-select-vue.umd.cjs` to `multiple-select-vue.umd.js`. CSS follows a separate Sass and copy pipeline before minification.
This structure indicates that Multiple Select maintains distinct delivery paths for its jQuery identity and Vue component usage. The repository contains `index.d.ts`, but the README does not describe its exported types. It also includes separate Vue examples and a Vue starter, although the README does not expose their import statements or component registration steps. Consumers should not invent those details from the file names alone.
Installing Multiple Select Requires Choosing the Vue Generation
The README gives one installation command for the only compatibility split it documents. Vue 2 users are directed to install the previous major version. For a Vue 2 project, the documented command is:
npm i multiple-select@1The repository does not give a separate installation command for Vue 3 because the README states that version 2.x is compatible with Vue 3 by default. The current `package.json` identifies the release as version 2.4.0 and exposes `dist/multiple-select.min.js` as its main entry. The README does not state a global script URL or a package-manager-specific command for the Vue 3 setup, so no such command can be reproduced reliably.
A first working use also requires information that the README does not contain. It directs readers to the examples and documentation at `http://multiple-select.wenzhixin.net.cn`, but it does not show how to import the Vue component, initialize the jQuery plugin, load CSS, bind selected values, or handle a change event. Start with the linked Vue or jQuery example that matches the integration path. If that example cannot be reconciled with the application's module configuration, the repository does not provide enough setup information to predict a successful installation.
Rollup, Vite, Sass, and Checks Form the Build Pipeline
Development and release artifacts are produced through several task groups defined in `package.json`. The top-level build runs linting, removes `dist/`, and then runs the JavaScript and CSS build groups. JavaScript linting is handled by ESLint, CSS linting by Stylelint, spelling checks by cspell, and formatting checks by editorconfig-checker. This separation makes the build pipeline inspect source and documentation before producing distributable files.
The CSS path begins by compiling SCSS from `src` into `src`, copies generated CSS into `dist/themes`, and creates minified theme files with cleancss. The banner step adds package metadata to minified assets. This repository layout suggests that themes are part of the distributed component rather than being injected only by an application build pipeline.
For contributors, changing `src/` is not the complete release procedure. A release also depends on successful linting, generated declarations and bundles, theme files, and banner updates. The README does not document the release command, publish process, browser test suite, or compatibility matrix. The presence of `.browserslistrc` indicates that browser targeting is configured, but its contents are not available, so no browser versions should be inferred.
Multiple Select Has Fewer Documented Controls Than a Full Selection Engine
The clearest limitation is documentation depth. The README identifies the broad purpose, compatibility split, examples, changelog, and license, but it does not document the selection API, option model, events, methods, keyboard behavior, or accessibility contract. That makes adoption harder to assess even though the repository includes dedicated documentation and example directories.
The library may also be the wrong choice when native browser semantics are more important than a custom checkbox presentation. A native multiple-selection control uses a platform-provided control and submits selected values as part of a form without requiring the application to reconstruct that behavior. Multiple Select centers its implementation on checkboxes, so the consumer must account for the extra presentation and state integration. The repository does not establish how closely that integration matches the native control.
Another boundary is the package's mixed positioning. Teams that want one jQuery plugin and no Vue-specific build path may see the Vue machinery as unnecessary. Teams that expect a full Vue form-control ecosystem may find too little visible API documentation in the README. Neither judgement proves that the implementation lacks the feature. It means the documented adoption surface is narrow.
MIT Licensing and Recent Releases Affect Upgrade Planning
The repository identifies the MIT License and includes a `LICENSE` file. That permits use and modification under the license's terms, but this article does not interpret those terms or provide legal advice. Organizations still need to review the actual `LICENSE` file and any dependency licenses in their own build.
The repository is not archived, and the last push was on 2026-10-15. The listed releases show version 2.3.1 on 2026-02-28, version 2.3.0 on 2026-02-28, and version 2.4.0 on 2026-06-23. These dates show recent release activity, but the repository does not include the `CHANGELOG` content here, so the exact changes and possible upgrade breaks in those versions cannot be assessed.
Upgrading from Vue 2 is a separate decision from upgrading within 2.x. The README explicitly directs Vue 2 projects to `multiple-select@1`, which means a Vue 3 migration and a component API migration are coupled at the dependency boundary. Before changing major versions, inspect the linked documentation and `CHANGELOG.md` for initialization, props, events, styles, and browser requirements that may differ between version 1 and version 2.
Choosing Between a jQuery Integration and a Vue Component Build
The practical alternative is not another named package but a different integration approach. A Vue application can use Multiple Select through the repository's Vue-oriented build and example directories, whereas a jQuery application can use the plugin package represented by `multiple-select.jquery.json` and the main jQuery distribution. The distinction is delivery and binding model: the Vue path is built with Vite as a component-oriented UMD asset, while the jQuery path is represented by the plugin package and Rollup-generated JavaScript.
A native multiple-selection control is another valid alternative when form submission and browser-provided interaction matter more than checkbox presentation. Multiple Select is the more relevant candidate when the application specifically needs checkboxes and accepts responsibility for integrating selection state. Based on the repository metadata, choose the Vue build for a Vue 3 integration and the jQuery build for a plugin-based page. The README does not document whether both paths expose identical options and events, so that equivalence must be checked in the linked examples rather than assumed.
Editorial conclusion
Adopt Multiple Select when a Vue 3 or jQuery application needs checkbox-based multiple selection and the external documentation provides the required component and plugin APIs. Do not choose it solely for its package metadata, because the README does not include initialization, event, styling, or accessibility details. First verify that version 2.4.0 matches your Vue generation, then confirm the documented initialization method and required CSS before integrating it.
Frequently asked questions
Which Multiple Select version should a Vue 2 project use?
The README says Vue 2 projects should install the previous major version with `npm i multiple-select@1`. Version 2.x is documented as compatible with Vue 3.
Is Multiple Select compatible with Vue 3?
Yes. The README states that version 2.x is compatible with Vue 3 by default, and the repository includes Vue examples and a Vue-specific build script.
How do I initialize Multiple Select?
The README does not include an initialization or import example. It directs users to the examples and documentation at `http://multiple-select.wenzhixin.net.cn`.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/wenzhixin-multiple-select)