Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在选择列表中搜索?_Php_Javascript_Jquery_Html_Css - Fatal编程技术网

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,那么这将仅在列表中显示bname3bname4


你怎么能制造一些东西?可能有点像。我必须使用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>