下载地址:http://github.com/ehynds/jquery-multiselect
效果: demos
首先需要引入 jquery 1.4、jQuery UI theme, 和 jquery.multiselect.css . 我们在这用的不是jQuery UI library本身,而是他的主题文件. 最简单的绑定select box方法:
<select id="MySelectBox" multiple="multiple" name="MySelectBox"> <option value="1">Option 1</option> <option value="2">Option 2</option></select>
$(document).ready(function(){ $("#MySelectBox").multiSelect(); });
比如其中的 onOpen
回调函数, 如:
$("#MySelectBox").multiSelect({ onOpen: function(){ var $checkboxes = $(this).find('input'); } });
onClick
回调函数. Example:
$("#MySelectBox").multiSelect({ onClick: function(){ if(this.checked){ alert("I was just checked!"); } } });
更多回调函数请看下面列表.
参数选项均在 $.fn.multiSelect.defaults中保存
, 你可以如下改变默认选项:
// set the minWidth parameter for all instances to 500 pixels $.fn.multiSelect.defaults.minWidth = 500;
As of 0.5, the selectedText parameter can accept an anonymous function with three arguments: the number of checkboxes checked, the total number of checkboxes, and an array of the checked checkbox DOM elements. As you can see in the example, this gives you 100% control of the display:
$("#MySelectBox").multiSelect({ selectedText: function(numChecked, numTotal, checkedInputs){ // example: emulating the default behavior return numChecked + " checked"; // example: emulating the selectedList option return (numChecked < = 5) ? checkedInputs.map(function(element){ return element.title; }).join(', ') : numChecked + " checked"; } });
showHeader | A boolean value denoting whether or not to display the header containing the check all, uncheck all, and close links. | true |
maxHeight | The maximum height in pixels of the scrolling container that holds the checkboxes. | 175 |
minWidth | The minimum width in pixels of widget. Setting to auto (default) will inherit the width from the original select element. |
200 |
checkAllText | The default text of the “Check all” link. | Check all |
unCheckAllText | The default text of the “Uncheck all” link. | Uncheck all |
noneSelectedText |
Renamed from
noneSelected in 0.5!
The default text the select box when no options have been selected. |
Select options |
selectedList | A boolean/numeric value denoting whether or not to display the checked opens in a list, and how many. A number greater than 0 denotes the maximum number of list items to display before switching over to the selectedText parameter. A value of 0 or false is disabled. |
false |
selectedText | The text to display in the select box when options are selected (if selectedList is false). The pound sign (#) is automatically replaced by the number of checkboxes selected. If two pound signs are present in this parameter, the second will be replaced by the total number of checkboxes available. Example: “# of # checked”.
New in 0.5!
As of 0.5, this parameter can also accept an anonymous function with three arguments: the number of checkboxes checked, the total number of checkboxes, and an array of the checked checkbox DOM elements. See the examples. |
# selected |
position | The position of the options menu relative to the input control: top, middle, or bottom. | bottom |
shadow | A boolean value denoting whether to apply a css shadow (class ui-multiselect-shadow). | false |
fadeSpeed | How fast (in ms) to fade out the options menu on close. | 200 |
state |
New in 0.5!
The default state of the widget. Either open or closed. |
closed |
disabled |
New in 0.5!
Whether or not to disabled the widget by default. Important: see the “Known Issues” section below for more documentation on this. |
false |
onCheck | A callback to fire when a checkbox is checked. | Function |
onOpen | A callback to fire when the options menu is opened. | Function |
onCheckAll | A callback to fire when the “Check all” link is clicked. | Function |
onUncheckAll | A callback to fire when the “Uncheck all” link is clicked. | Function |
onOptgroupToggle | A callback to fire when the opgroup header is clicked. An array of checkboxes inside the optgroup is passed as an optional argument. | Function |