-1

私は私が持っている機能を持っています:

$("#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>
4

1 に答える 1

3

要素に対して選択されたオプションを存在しないオプションに設定しようとし<select>ています(の値が存在しないオプションはありませんuptodate)。

したがって、val("uptodate")は事実上無視され、val()以前と同じ値が返されます。

もしそうなら$("#action_box").val("1");、あなたはもっと成功するでしょう。

テキストコンテキストが「最新」である要素を選択しようとしていると仮定します。ただし、使用を回避できるlabel属性を使用していない場合に限ります。

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

ただし、を使用している場合は、コメントで説明されているように、この方法labelを使用することに頼ることができます。filter()

$(this).find('option').filter(function () {
    return $(this).text() === "uptodate";   
}).prop('selected', true);
于 2013-01-09T13:14:18.363 に答える