2016-08-29 54 views
1

我想比較字符串與dropdownlist中的所有值。 dropdownlist的哪個值與該字符串相匹配,應該被選中。如何使用jquery在var中獲取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有回報,顯示出下降的兩個值下拉列表[康柏,惠普。

現在我想比較一個字符串與所有的dropdownlistvendor值。 我試過這段代碼來獲取dropdownlist的所有值。但它不起作用。

var vendorArr = []; 
$('#DropDownListVendor').each(function() { 
    vendorArr.push($(this).attr('value')); 
}); 
alert("vendor Array ==" + vendorArr[0]); 

它返回警報vendor Array == Undefined。 謝謝。

+0

'$(「#DropDownListVendor」)每個(函數()'您的ID選擇這裏,但需要多個要素是選擇,這根本無法工作 –

回答

1

您可以通過選擇列表中選擇循環使用.map()

var vendorArr = $("#DropDownListVendor option").map(function() { 
    return this.value; 
}).get(); 

,因爲ASP下拉列表ID可能會改變時在html中呈現如果你正在使用ASP主頁面,您可以使用Attribute Ends With Selector來解決,像:

var vendorArr = $("[id$='DropDownListVendor'] option").map(function() { 
    return this.value; 
}).get(); 
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);
<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>

+0

謝謝你的工作 –

相關問題