我想将字符串与dropdownlist中的所有值进行比较。 dropdownlist的哪个值与该字符串匹配,应该被选中。
例如
<div class="col-lg-3">
<asp:DropDownList ID="DropDownListVendor" class="form-control text-box-border" runat="server" DataSourceID="SqlDataSource1" DataTextField="vendor_name" DataValueField="vendor_name"></asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Nibrass_DBConnectionString %>" SelectCommand="SELECT [vendor_name] FROM [Vendor_tb]"></asp:SqlDataSource>
</div>
DropDownListVendor返回并在下拉列表[Compaq,Hp]中显示两个值。
现在我想将一个字符串与所有的dropdownlistvendor值进行比较。 我尝试使用此代码获取dropdownlist的所有值。但它没有用。
var vendorArr = [];
$('#DropDownListVendor').each(function() {
vendorArr.push($(this).attr('value'));
});
alert("vendor Array ==" + vendorArr[0]);
它会在警告vendor Array == Undefined
中返回。
感谢。
答案 0 :(得分:2)
您必须循环options
。 #DropDownListVendor
选择器只会获取select
元素本身和当前selected value
,而不是所有可能的值。
$('#DropDownListVendor option').each(function() {
vendorArr.push($(this).attr('value'));
});
工作示例:
var vendorArr = [];
$('#DropDownListVendor option').each(function() {
vendorArr.push($(this).attr('value'));
});
console.log(vendorArr);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="DropDownListVendor">
<option value="Compaq">Compaq</option>
<option value="HP">HP</option>
<option value="Lenovo">Lenovo</option>
<option value="IBM">IBM</option>
</select>
&#13;
答案 1 :(得分:1)
您可以使用.map()
等
var vendorArr = $("#DropDownListVendor option").map(function() {
return this.value;
}).get();
因为,当您使用asp母版页时,如果在html中呈现asp下拉列表id可能会更改,您可以使用Attribute Ends With Selector
来解决此问题:
var vendorArr = $("[id$='DropDownListVendor'] option").map(function() {
return this.value;
}).get();