A simple style and powerful selection jQuery plugin, including ajax remote data, autocomplete, pagination, tags, i18n and keyboard navigation features
Examples and DocumentationExplorer on
The Vuejs version: v-selectpage
FeaturesMultiple Selection with Tags form
Regular select mode ( single selection )
List only ( pagination bar close, disable typing to quick search, select only )
InstallationDownload SelectPage plugin zip file by last release, or click me to download SelectPage
or use NPM
UsageAs you can see in the Demo Page, you will need to include:
selectpage.js
(or its minified version selectpage.min.js
)selectpage.css
<!-- jQuery library --> <script type="text/javascript" src="jquery.min.js" ></script> <link rel="stylesheet" href="selectpage.css" type="text/css"> <script type="text/javascript" src="selectpage.js" ></script>HTML input element set
the SelectPage plugin just need put a input tag in the page
<input type="text" id="selectpage" >Javascript init plugin
// defined a array (the server side returned data format was same like that) // Array[{Object},{...}] var data = [ {id: 1, name: 'Chicago Bulls', desc: 'èå å¥å ¬ç' }, {id: 2, name: 'Cleveland Cavaliers', desc: 'å éå¤«å °éªå£«' }, {id: 3, name: 'Detroit Pistons', desc: 'åºç¹å¾æ´»å¡' }, {id: 4, name: 'Indiana Pacers', desc: 'å°ç¬¬å®çº³æ¥è¡è ' } ] // init SelectPage $('#selectpage').selectPage({ showField : 'desc', keyField : 'id', data : data })Stargazers over time Options
The plugin initialize options
datastring | object
undefined
data source (stringï¼ajax search URL | objectï¼JSON format array)
// serverside request url address $('#selectpage').selectPage({ data: 'https://some-site/some-route' }) // JSON format array var data = [{a:1,b:2,c:3},{...}] $('#selectpage').selectPage({ data: data })lang
string
cn
plugin language
code language cn chinese en english de german es spanish ja japanse pt-br Brazilian Portuguese multipleboolean
false
whether it is multi-select modeï¼use tags modeï¼
paginationboolean
true
paging or not
listSizenumber
10
the list shows the number of items, and the other items are displayed in a scroll bar,it only work on pagination : false
boolean
true
whether to enable the multi-select mode control button area,only work on multiple: true
number
0
maximum number of selections in multi-select modeï¼0 is unlimited
selectToCloseListboolean
true
is close list after item select,it only work on multiple:true
string
undefined
the initial value of the plugin, The value will match the option.keyField field, and if it matches, it will be automatically selected and highlighted
dbTablestring
'tbl'
use this parameter to set the corresponding data table name in server side(ajax) mode
keyFieldstring
'id'
value field, usually the contents of the field will be automatically saved in the hidden domain
showFieldstring
'name'
the result is used to display the name of the attribute
searchFieldstring
undefined
query field, set server side query field when data source is server side mode, if not set default use of option.showField
andOrstring
'AND'
multiple keywords search type ('AND' or 'OR')
orderBystring[]
undefined
result data sort type, default use showField specified field
$('#selectpage').selectPage({ ... orderBy : ['id desc'] // use id field sort desc })pageSize
number
10
the number of records per page
paramsfunction (): object
object
undefined
send request params for server side data source(ajax)
$('#selectpage').selectPage({ ... params : function() { return { name: 'aa', sex: 1 } } })formatItem
function (data: object): string
object
row data object formatstring
undefined
list item display content formatting
$('#selectpage').selectPage({ ... formatItem : function(data) { return data.a + '(' + data.b + ')' } })focusDropList
boolean
true
when input box get focus,drop the list
autoSelectFirstboolean
true
whether to automatically select the first item in the list (enter the keyword query mode, use the mouse directly does not trigger)
autoFillResultboolean
true
whether to automatically fill the content, if the list item is highlighted, in the focus away from the control, automatically set the item for the selected content
noResultCleanboolean
true
enter the keyword to query and no item match,when focus leave plugin,whether to clear enter keywords
selectOnlyboolean
false
select only mode,the input box can not enter any word
inputDelaynumber
0.5(second)
enter the keyword query delay, work on server side(ajax) mode
eSelectfunction (data: object|object[]): void
object | array
selected row or rows data(json)undefined
item selected callback
$('#selectpage').selectPage({ ... eSelect : function(data) { console.log(data) } })eOpen
function (self: object): void
object
plugin inner objectundefined
before show up result list callback
$('#selectpage').selectPage({ ... eOpen : function(self) { console.log(data) } })eAjaxSuccess
function (data: object): object
object
server side return data(json)object
convert to SelectPage required data formatundefined
in server side mode, this is the callback function when request success, the role of the callback is used to custom processing of the return data
server side return data for example
{ "values": { "gridResult": { "pageSize": 10, "pageNumber": 1, "totalRow": 11, "totalPage": 2, "listData": [ { "name": "name1", "id": "1" }, { "name": "name2", "id": "2" }, { ... } ] } } }
eAjaxSuccess
required data format
{ list: object[], // rows data totalRow: number // total record count number }
then eAjaxSuccess
code for example below
$('#selectpage').selectPage({ ... data: 'https://some-site/some-route', eAjaxSuccess : function(data) { var dataNode = data.values.gridResult return { list : dataNode.listData, totalRow : dataNode.totalRow } } })eTagRemove
function (removeCount: number): void
number
removed tag countundefined
this callback function is used to close tag, when multiple : true
$('#selectpage').selectPage({ ... eTagRemove : function(removeCount) { console.log(removeCount) } })API selectPageClear
selectPageClear(): void
clear all select items
$('#selectpage').selectPageClear()selectPageRefresh
selectPageRefresh(): void
refresh plugin selected items info
$('#selectpage').val(20) // modify selected by id used javascript $('#selectpage').selectPageRefresh() // refresh selection item infoselectPageData
selectPageData(data: object): void
array
new data, the data format is same to plugin data sourcechange plugin data source,only work on json data source mode
var newdata = [ { a: 1, b: 11, c: 111 }, { a: 2, b: 22, c: 222 }, { ... } ] $('#selectpage').selectPageData(newdata)selectPageDisabled
selectPageDisabled(status?: boolean): void
boolean(optional)
set disabled stauts. true
to disabled, false
to enabledget plugin disabled status or set plugin status to disabled
/ enabled
// get plugin disabled stuats if($('#selectpage').selectPageDisabled()) { // set plugin to enabled $('#selectpage').selectPageDisabled(false) }selectPageText
selectPageText(): string
string
selected items string contentget plugin selected items text
alert($('#selectpage').selectPageText())selectPageSelectedData
selectPageSelectedData(): object[]
object[]
selected items raw datasget selected items raw data
console.log($('#selectpage').selectPageSelectedData())License
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4