2015-06-03 82 views
1

我正在處理一些HTML/Javascript代碼。設置選擇<select>選項使用jquery基於值不是文本

我有以下框。

<select style="height: 90px;" id="cboApplications" name="cboApplications[]" multiple> 
    <option value="1">App 1</option> 
    <option value="2">App 2</option> 
    <option value="3">App 3</option> 
</select> 

我有以下的javascript代碼

$("#cboApplications option[value=2]").attr("selected", "selected"); 

出於某種原因,雖然,沒有被選中,並且沒有顯示錯誤。

感謝您提供的任何幫助。

回答

3

你非常接近。你需要用引號附上2,它會解決你的問題。

$("#cboApplications option[value='2']").attr("selected", "selected");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select style="height: 90px;" id="cboApplications" name="cboApplications[]" multiple> 
 
    <option value="1">App 1</option> 
 
    <option value="2">App 2</option> 
 
    <option value="3">App 3</option> 
 
</select>

+1

謝謝,但由於某種原因,這沒有奏效。仍然沒有得到選擇,沒有錯誤 – Boardy

+0

感謝這一切工作畢竟,正如我在另一個答案中所提到的,我以錯誤的順序調用函數來填充和選擇 – Boardy

+0

@Boardy,我仍然會建議你使用' .val()'或'.prop()'通過http://stackoverflow.com/questions/5874652/prop-vs-attr現在它取決於你決定是否使用最佳做法或不 – Satpal

1

您應該使用.val()來設置值。

字符串的文本,數字或字符串數​​組,對應於每個匹配元素的值以設置爲選中/檢查。

$("#cboApplications").val(2); 

OR

$("#cboApplications option[value=2]").prop("selected", true); 
+0

謝謝,但這些都不工作了我出於某種原因 – Boardy

+0

@Boardy,見它的工作原理http://jsfiddle.net/satpalsingh/bygp5kve/你能分享更多的信息?你正在使用AJAX或其他框架? – Satpal

+0

D'oh,我以錯誤的順序調用了幾個函數,我選擇了它,然後填充它。感謝您的幫助 – Boardy

0

使用此: $("#cboApplications").val(2);

+1

在答案中提供一些解釋將幫助您的讀者學習。 –

相關問題