我通过在文本框中输入来设置下拉值。问题是我的下拉值与下拉列表中的选项文本不同。所以我必须在文本中键入每个选项的值,以便在下拉列表中获取正确的文本。如何通过在文本框中放置文本来选择文本。
$(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代码中的字母值有A值。
因此,如果我在文本中输入QC code
,则应从下拉列表中选择QC code
。现在我输入A
答案 0 :(得分: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 :(得分:0)
使用contains()
按其文本值抓取select选项,然后将其selected
属性设置为true:
var textValue = $("#txt_scheme").val();
$("select option:contains("+textValue+")").attr('selected', true);