2015-02-18 3 views
1

Ниже приведен код, который меняет опцию выбора на основе значения текстового поля, но я хочу изменить значение опции выбора без нажатия кнопки «Выбрать сейчас». Средство выбирает опцию изменения непосредственно из значения текстового поля, для этого не требуется кнопка.Выберите опцию box на основе значения текстового поля

<select name="sel" id="MySelect"> 
    <option value="">Select One</option> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
    <option value="4">Four</option> 
    <option value="5">Five</option> 
    <option value="6">Six</option> 
</select><br><br> 

Select By Text: <br> 
<input type="text" name="selText" value="Six"> 
<input type="button" name="selectNow" value="Select Now"> 
$(function() { 
    $('input[name=selectNow]').on('click', function(event) { 
     selectByText($.trim($('input[name=selText]').val())); 
    }).click(); 
}); 

function selectByText(txt) { 
    $('#MySelect option') 
     .filter(function() { 
      return $.trim($(this).text()) == txt; 
     }) 
     .attr('selected', true); 
} 

ответ

0

Логики такой же, за исключением того, что вам нужно подключить к keyup события на selText элементе:

$('input[name=selText]').on('keyup', function() { 
    selectByText($.trim($(this).val())); 
}); 

Example fiddle

0

Просто изменить событие быть поднято, когда значение selText изменяется:

$('input[name=selText]').on('change', function(event) { 
    selectByText($.trim(this.value)); 
}).change(); 

См. Fiddle

Смежные вопросы