рдиреАрдЪреЗ рд╣рдо рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдЦреЛрдЬ рд╡рд┐рдзрд┐ (рдЪрдпрди) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдФрд░ рд╕реНрд╡рдпрдВ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
<input class="type-search" type="text" /> <select size="10" id="list"> <option value="val">Text</option> ... <option value="val*n">Text</option> </select>
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрдзрд┐рдХ рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 10 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде
рдЖрдХрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде
рдЪрдпрди рдЯреИрдЧ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдореЗрдВ рдереЛрдбрд╝реА
рд╕реАрдПрд╕рдПрд╕ рдЬреЛрдбрд╝реЗрдВ:
input, select { width: 300px; margin: 10px auto; display: block; }
рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп, рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛, рд╕рдм рдХреБрдЫ рдЫрд┐рдкрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рд╕реВрдЪреА рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред
рд╕реВрдЪреА рдЦреЛрдЬ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдорд╛рди рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рдмрдЬрд╛рдп рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (
рдирдП RegExp () ) рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
var field = $('#list').find('option'); // $('#searchInput').bind('keyup', function() { var q = new RegExp($(this).val(), 'ig'); for (var i = 0, l = field.length; i < l; i += 1) { var option = $(field[i]), parent = option.parent(); if ($(field[i]).text().match(q)) { if (parent.is('span')) { option.show(); parent.replaceWith(option); } } else { if (option.is('option') && (!parent.is('span'))) { option.wrap('<span>').hide(); } } } });
рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЦреЛрдЬ рд╕реНрд╡рдпрдВ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ: рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕реВрдЪреА рдорджреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЧреБрдгреЛрдВ рдХрд╛ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣рдореЗрд╢рд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ (
рдХреНрд░реЛрдо ,
рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ ) рдореЗрдВ, рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓
рдкреНрд░рджрд░реНрд╢рди рдЬреЛрдбрд╝рддреЗ
рд╣реИрдВ: рд╡рд┐рдХрд▓реНрдк рдЯреИрдЧ рдореЗрдВ рд╕реЗ
рдХреЛрдИ рднреА рдирд╣реАрдВ , рдмрд╛рдж рд╡рд╛рд▓рд╛ рдЕрднреА рднреА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐,
рд╕реНрдкреИрди рдЯреИрдЧ рдореЗрдВ рд▓рд┐рдкрдЯреЗ рдПрдХ рд╣реА
рд╡рд┐рдХрд▓реНрдк рдЯреИрдЧ
рдХреЗ рдХрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ
рд╕рд╛рдзрд╛рд░рдг рдлрд┐рдВрдЯ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛
рд╣реИ: рдХреЛрдИ рднреА рдирд╣реАрдВ , рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рдЙрдореНрдореАрдж
рдХреЗ рдореБрддрд╛рдмрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдкреБрдирд╢реНрдЪ: рдпрд╣ рд╡рд┐рдзрд┐ рди рддреЛ рдорд╛рдиреНрдп рд╣реИ рдФрд░ рди рд╣реА рд╢рдмреНрджрд╛рд░реНрдерд┐рдХ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ ред