2013-01-09 108 views
-1

我有,我有一個功能:VAL()沒有返回值我設定VAL()

$("#action_box").val("uptodate"); 
var myVal = $("#action_box").val(); 
alert(myVal); 

警報的輸出爲0,你能指出我對我的錯誤呢?

編輯:抱歉沒有提及有關action_box元素的任何內容。

<select name="action_box" id="action_box" style="vertical-align:top;"> 
    <option value="0">{{$l.opt1}}</option> 
    <option value="1">{{$l.opt2}}</option> 
    ... 
</select> 
+9

什麼是'#action_box' ...它是一個表單元素嗎?您必須使用'html()'/'text()'否則... – Matt

+0

不知道人們爲什麼不斷詢問JavaScript代碼,因爲它與HTML無關。 ':(' – gdoron

+0

這是一個表單元素 – Pumpkin

回答

3

你是要爲一個<select>元素所選擇的選項設置爲一個選項,它不存在(沒有與uptodate存在的價值)。

因此val("uptodate")正在被有效地忽略,留下val()返回它以前相同的值。

如果您確實$("#action_box").val("1");,您會獲得更多成功。

假設您嘗試選擇文本上下文爲「uptodate」的元素,假設您沒有使用label attribute,則可以使用;

$('#action_box').find('option[label="uptodate"]').prop('selected', true); 

但是,如果你正在使用label,您可以訴諸使用filter()方法,如在評論中討論;

$(this).find('option').filter(function() { 
    return $(this).text() === "uptodate"; 
}).prop('selected', true); 
+0

什麼?選項沒有'標籤屬性 –

+0

@FabrícioMatté:http://jsfiddle.net/YjLmx/這是你把''的值 – Matt

+0

哦,我沒有意識到這一點,謝謝你的信息,儘管如此,方括號是屬性選擇器,而不是屬性選擇器。'=]'http://jsfiddle.net/pyQCd/ –