如果组标签中的值匹配,请选择下拉列表项?



我想添加一个动态函数,如果/具有与输入字段标签匹配的任何值,该函数将自动选择下拉列表?

在下面的代码段中,应选择产品代码(因为标签是产品代码)

<div class="col-sm-12 col-md-4">
<div class="form-group">
<label for="">Product Code</label> <select id="ddlProductCode"
class="form-control input-sm">
<option value="0">
--Select--
</option>
<option value="Product Code">
Product Code
</option>
<option value="Product Name">
Product Name
</option>
<option value="Product Description">
Product Description
</option>
<option value="Product Category">
Product Category
</option>
<option value="Product Sub Category">
Product Sub Category
</option>

</select>
</div>
</div>

提前非常感谢! 戴夫

如果我理解正确,这将有所帮助:

$(function() {
var $ddlProductCode = $('#ddlProductCode');
var labelValue = $select.prevAll("label:first").text();
$select.val(labelValue);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-sm-12 col-md-4">
<div class="form-group">
<label for="">Product Code</label> <select id="ddlProductCode"
class="form-control input-sm">
<option value="0">
--Select--
</option>
<option id="asd" value="Product Code">
Product Code
</option>
<option value="Product Name">
Product Name
</option>
<option value="Product Description">
Product Description
</option>
<option value="Product Category">
Product Category
</option>
<option value="Product Sub Category">
Product Sub Category
</option>

</select>
</div>
</div>

检查 jquery 将根据标签文本选择值

$('#ddlProductCode option:contains(' + $('#lbl').text() +')').each(function(){
if ($(this).val() == $('#lbl').text()) {
$(this).attr('selected', true);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-sm-12 col-md-4">
<div class="form-group">
<label id="lbl" for="">Product Code</label> <select id="ddlProductCode"
class="form-control input-sm">
<option value="0">
--Select--
</option>
<option value="Product Code">
Product Code
</option>
<option value="Product Name">
Product Name
</option>
<option value="Product Description">
Product Description
</option>
<option value="Product Category">
Product Category
</option>
<option value="Product Sub Category">
Product Sub Category
</option>

</select>
</div>
</div>

您可以遍历每个选项并选择与标签文本匹配的选项,如下所示:

$('option').each(function(i, option) {
if ( option.value == $('label').text() ) {
option.selected = "selected";
}
});
for (i = 0; i < yourselect.length; ++i) {
if (yourselect.options[i].value == yourvalue) {
yourselect.value = yourvalue;
}
}

不幸的是,这不是您应该使用<label>标签的方式。

HTML 元素表示用户中项目的标题 接口。-- Mozilla 文档

因此,<label>并不意味着价值应该是多少。
如果要设置默认值,只需将selected添加到该<option>

我不完全确定你为什么要这样做,所以也许我误解了,但要回答你的问题,你可以根据标签名称设置<option>

无需循环浏览选项:

$('#ddlProductCode').val($('label').text())

最新更新