2011-08-15 214 views
3

我需要一個jQuery選擇,讓我jQuery選擇問題

查找輸入(選擇/選項)下拉 - 這裏選擇的名稱是ACTC和 - 選擇的值是ABC

我覺得它的東西像:

myTmpl.find("input[name='ACTC']").val('ABC'); 

回答

2

我真的不知道你在做什麼應用程序。爲什麼不只是獲得名稱爲「ACTC」的選擇框的當前值並測試它是否爲'ABC'?

var selectBox = $('select[name="ACTC"]'); 
var selectValue = $(selectBox).val(); 

if (selectedValue == 'ABC'){ 
    // use the 'selectBox' variable as it references your <select> element 
} 
else{ 
    // do something else or nothing at all 
} 

<option>標籤的選擇是:

$('select[name="ACTC"] option[value="ABC"]'); 

如果你想看看如果選擇與價值「ABC」的選項,你可以檢查,像這樣:

// if the following line of code > 0 then the option is selected 
$('select[name="ACTC"] option[value="ABC"]:selected').length; 

如果您確實想要將特定選項標記爲已選,您可以這樣做:

$('select[name="ACTC"] option[value="ABC"]').attr({selected:true}); 

如果你只是想找到<select>盒子「ABC」的設定值(請注意這隻會是必要的,如果您有相關的多個同名的選擇框):

$('select[name="ACTC"] option[value="ABC"]:selected').closest('select'); 
+0

唯一的「問題」這個是當前所選的值它選擇'option'而不是'select'。你需要像Frédéric在他的回答中描述的那樣使用':has()'選擇器。 – Kokos

+0

解決了我上面的最後一行代碼。 – Ryan

+1

我想這也是作品:)我無法想象它比':has()'方法更快,但是我再也不認爲這種差異是不明顯的^^。 – Kokos

1

你不能以這種方式使用val(),並且因爲實際值屬於<option>元素,所以也不能在value附近使用簡單的attribute equals選擇器。

但是,你可以結合:has():selected

var select = myTmpl.find("select[name='ACTC']:has(option[value='ABC']:selected)"); 

可以在this fiddle測試。

1

這會得到一個選擇/選項有「ACTC」的類名,如果值是「ABC」

$(document).ready(function() { 
$("input").click(function() { 
    if ($('.ACTC option:selected').val() == 'ABC') { 
     alert("ABC Selected"); 
    } 
    else 
    { 
     alert("ABC not select"); 
    } 
}); 
}); 
1
var select = $('select[name="ACTC"]').filter(function(e) { return e.value == 'ABC'; })