Opt Group中的JQuery Set选项

时间:2014-04-11 18:46:47

标签: javascript jquery jquery-mobile

我试图弄清楚如何使用JQuery在optgroup中设置一个选项,而我似乎无法弄明白。

我在页面上有一个隐藏字段,其中包含以下值4-2014。准备好后,我想读取隐藏值并设置所选选项。

HTML:

<select name="dropdownlist" id="dropdownlist">
<option value="All">All</option>
<optgroup label="2013" id="2013">
    <option value="7">July</option>
    <option value="4">April</option>
</optgroup>
<optgroup label="2014" id="2014">
    <option value="4">April</option>
    <option value="3">March</option>
</optgroup>

Jquery的:

  $(document).ready(function() {
 //set the dropdown selected item.
 var varDropdownvalue = $("input[id$=Dropdownvalue]").val();
 var monthyear = varDropdownvalue.split('-');
 $('#dropdownlist #'+monthyear[1]+' option[value='+monthyear[0]+']').prop("selected", true);
      $('#dropdownlist').change(function () {      
          //get the optgroup label and value of selected option.
          var label = $(this.options[this.selectedIndex]).closest('optgroup').prop('label');
          var value = $(this).find("option:selected").val();
  alert(value+'-'+label);
    });
});

这是一个小提琴:jsfiddle

2 个答案:

答案 0 :(得分:2)

尝试

$('#dropdownlist').val(monthyear[0]).change();

http://jsfiddle.net/LPAFD/1/

答案 1 :(得分:0)

字段:

<input type="hidden" id="hidden_select" value="4-2014" />

JS:

var hidden = $("#hidden_select").val().split("-");
var month = hidden[0];
var year = hidden[1];
var list = $("#dropdownlist");
var theOption = list.find('optgroup#'+year+' option[value="'+month+'"]').val();
list.val(theOption).change();