Php 在选择列表中搜索?
我想做点什么:Php 在选择列表中搜索?,php,javascript,jquery,html,css,Php,Javascript,Jquery,Html,Css,我想做点什么: <select> <option value=""> Please select </option> <option value="search"> < /input search > </option> <option value="name1"> name1 </option> <option value="aname2"> aname2
<select>
<option value=""> Please select </option>
<option value="search"> < /input search > </option>
<option value="name1"> name1 </option>
<option value="aname2"> aname2 </option>
<option value="bname3"> bname3 </option>
<option value="bname4"> bname4 </option>
<option value="cname5"> cname5 </option>
<option value="cname6"> cname6 </option>
</select>
请选择
名称1
阿纳梅2
bname3
bname4
cname5
cname6
如果我设置/mouseover/click选项搜索,那么我希望搜索其他选项值。
我有300个选项。例如,如果我写b,那么这将仅在列表中显示bname3和bname4
你怎么能制造一些东西?可能有点像。我必须使用jQuery,而不是Mototools等。您不希望使用基本选择来实现这一点,因为这是不可能的。但是jQueryUI有自动完成功能:这对您来说是完美的
这里有一个更具体的例子:您可以从
使用Selected,我认为这是最好的插件:
只要您允许查询有一个单独的输入字段,并且不需要将搜索转移到服务器,就可以这样编写:
<script>
function bind_select_search(srch, select, arr_name) {
window[arr_name] = []
$(select + " option").each(function(){
window[arr_name][this.value] = this.text
})
$(srch).keyup(function(e) {
text = $(srch).val()
if (text != '' || e.keyCode == 8) {
arr = window[arr_name]
$(select + " option").remove()
tmp = ''
for (key in arr) {
option_text = arr[key].toLowerCase()
if (option_text.search(text.toLowerCase()) > -1 ) {
tmp += '<option value="'+key+'">'+ arr[key] +'</option>'
}
}
$(select).append(tmp)
}
})
$(srch).keydown(function(e) {
if (e.keyCode == 8) // Backspace
$(srch).trigger('keyup')
})
}
</script>
函数bind\u select\u search(srch,select,arr\u name){
窗口[arr_name]=[]
$(选择+“选项”)。每个(函数(){
窗口[arr_name][this.value]=this.text
})
$(srch).keyup(函数(e){
text=$(srch).val()
如果(文本!=''|| e.keyCode==8){
arr=窗口[arr\u name]
$(选择+“选项”).remove()
tmp=''
用于(输入arr){
option_text=arr[key].toLowerCase()
如果(选项_text.search(text.toLowerCase())>-1){
tmp+=''+arr[键]+''
}
}
$(选择).append(tmp)
}
})
$(srch).keydown(函数(e){
if(e.keyCode==8)//退格
$(srch).trigger('keyup')
})
}
表格:
伦敦
纽约
巴黎
奥斯陆
柏林
这是什么:
-还可以看看
<script>
function bind_select_search(srch, select, arr_name) {
window[arr_name] = []
$(select + " option").each(function(){
window[arr_name][this.value] = this.text
})
$(srch).keyup(function(e) {
text = $(srch).val()
if (text != '' || e.keyCode == 8) {
arr = window[arr_name]
$(select + " option").remove()
tmp = ''
for (key in arr) {
option_text = arr[key].toLowerCase()
if (option_text.search(text.toLowerCase()) > -1 ) {
tmp += '<option value="'+key+'">'+ arr[key] +'</option>'
}
}
$(select).append(tmp)
}
})
$(srch).keydown(function(e) {
if (e.keyCode == 8) // Backspace
$(srch).trigger('keyup')
})
}
</script>
<input id="srch" type="text" name="search">
<select id="slct">
<option value="1">London</option>
<option value="2">New York</option>
<option value="3">Paris</option>
<option value="4">Oslo</option>
<option value="5">Berlin</option>
</select>