2017-02-08 3 views
0

Я установил значение выпадающего списка, введя его в текстовое поле. Проблема заключается в том, что мои выпадающие значения отличаются от текста параметров в раскрывающемся списке. Поэтому я должен ввести значение каждой опции в текст, чтобы получить правильный текст в раскрывающемся списке. Как выбрать текст, поместив текст в текстовое поле.Как установить текст окна выбора с помощью jQuery

$(document).ready(function(){ 
 
    $("#txt_scheme").keyup(function(){ 
 
    $("#scheme").val($("#txt_scheme").val()); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="form-group"> 
 
    <label class="col-sm-4 control-label">Scheme**</label> 
 
    <div class="col-sm-4"> 
 
    <select class="form-control" name="scheme" id="scheme"> 
 
     <?php 
 
     for ($column = 'A'; $column <= $lastcol; $column++) { 
 
      echo '<option value="' . $column . '">' . $worksheet->getCell($column . '1')->getValue() . '</option>'; 
 
     } 
 
     ?> 
 
    </select> 
 
    </div> 
 
    <div class="col-sm-4"> 
 
    <input type="text" class="form-control" id="txt_scheme" name="txt_scheme" placeholder="Or Type here"> 
 
    </div> 
 
</div>

Мои варианты выпадающие являются

QC code 
Analyte 
Assay Value 
Assigned Value 
STANDARDDEVIATION 
ACCEPTABLEMIN 
ACCEPTABLEMAX 
Sample ID 
Date 

и там значения в алфавитах, как кодекс QC имеют значение.

Так что, если я напечатаю QC code, в тексте он должен выбрать QC code из раскрывающегося списка. сейчас им получить его, набрав A

+1

Просьба опубликовать полученный HTML, а не PHP. – j08691

ответ

1

Вы должны использовать filter функции для того, чтобы получить value варианта с txt_scheme текстом:

$(document).ready(function(){ 
    $("#txt_scheme").keyup(function(){ 
     var valueFromText=$("#scheme option").filter(function(i,option){ 
      return $(option).text()==$("#txt_scheme").val(); 
     }).val(); 
     $("#scheme").val(valueFromText); 
    }); 
}); 

$("#txt_scheme").keyup(function(){ 
 
     var valueFromText=$("#scheme option").filter(function(i,option){ 
 
      return $(option).text().toLowerCase()==$("#txt_scheme").val().toLowerCase(); 
 
     }).val(); 
 
     $("#scheme").val(valueFromText); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="scheme"> 
 
    <option value="A">QC code</option> 
 
    <option value="B">Analyte</option> 
 
    <option value="C">Assay Value </option> 
 
    <option value="D">Assigned Value </option> 
 
    <option value="E">STANDARDDEVIATION</option> 
 
    <option value="F">ACCEPTABLEMIN</option> 
 
    <option value="G">ACCEPTABLEMAX</option> 
 
    <option value="H">Sample ID</option> 
 
</select> 
 
<input type="text" id="txt_scheme"/>

+1

Красиво работает! просто одно, что возможно, что я могу написать в нижний регистр. Я должен исправить тип всего текста.? –

+1

@adeel, да, это возможно с помощью метода 'toLowerString()'. Я обновил свой ответ. –

+0

@ Александру-Ионут Михай очень хорошо сделано! thankx за то, что я быстро нашел решение, искал 5 часов, но я не получил правильного ответа. может быть не поиск по ключевым словам. –

0

Используйте contains(), чтобы захватить выберите параметр, его текстовое значением, а затем установить его атрибут selected истину:

var textValue = $("#txt_scheme").val(); 
$("select option:contains("+textValue+")").attr('selected', true); 
+0

жаль, что я не получил вашего ответа. Можете ли вы PLZ ТЕЛ меня кратко –

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