Codice di lavoro per ricerca all’interno del menu a discesa

Qualcuno mi ha aiutato con questo precedente, ma c’è un problema e ho già chiuso la questione. Non voglio usare JQuery. Il codice seguente funziona, vi permette di cercare un menu a discesa:

<html>
  <head>
    <script type="text/javascript">
    function searchSel() 
    {
      var input = document.getElementById('realtxt').value.toLowerCase(),
          len = input.length,
          output = document.getElementById('realitems').options;
      for(var i=0; i<output.length; i++)
        if (output[i].text.toLowerCase().slice(0, len) == input)
          output[i].selected = true;
      if (input == '')
        output[0].selected = true;
    }
    </script>
  </head>
  <body>
    <form>
      search <input type="text" id="realtxt" onkeyup="searchSel()">
      <select id="realitems">
        <option value="">select...</option>
        <option value="1">Power hungry</option>
        <option value="2">Super man</option>
        <option value="3">Hyperactive</option>
        <option value="4">Bored</option>
        <option value="5">Human</option>
      </select>
    </form>
  </body>
</html>

Qui è il problema.

Si è limitata solo alla corrispondenza prime lettere della prima parola. Quindi, se hai digitato Super per il Super Uomo, che avrebbe funzionato. Ma se si digitando con Man non verrà visualizzata. C’è un modo per farlo corrispondere l’intera stringa per un valore corrispondente? Grazie.

OriginaleL’autore user3187352 | 2014-01-13

1 risposta

  1. 7

    Ho creato un violino, si prega di controllare.
    http://jsfiddle.net/wLzs4/3/

    Ho usato indexOf funzione javascript per il vostro caso.

    function searchSel() 
        {
          var input = document.getElementById('realtxt').value.toLowerCase();
    
              len = input.length;
              output = document.getElementById('realitems').options;
          for(var i=0; i<output.length; i++)
              if (output[i].text.toLowerCase().indexOf(input) != -1 ){
              output[i].selected = true;
                  break;
              }
          if (input == '')
            output[0].selected = true;
        }
    Sì grazie mille funziona 😀
    Buon lavoro. grazie

    OriginaleL’autore A Paul

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *