Jquery 设置选择选项

Jquery 设置选择选项,jquery,Jquery,我有一些精选的下拉列表 <div class="selector"> <div class="nomination selectors-part">Year</div> <div class="selection mini"> <select name="seltoYear">

我有一些精选的下拉列表

            <div class="selector">
                <div class="nomination selectors-part">Year</div>
                <div class="selection mini">
                    <select name="seltoYear">
                        <option selected disabled>Till</option>
                        <option value="2015">2015</option>
                        <option>2014</option>
                        <option>2013</option>
                        <option>2012</option>
                        <option>2011</option>
                    </select>
                </div>
                <div class="selection mini">
                    <select name="selfromYear">
                        <option selected disabled>From</option>
                        <option>1956</option>
                        <option>1986</option>
                        <option>1993</option>
                        <option>1994</option>
                        <option>1995</option>
                        <option>1996</option>
                    </select>
                </div>
                <div class="clear"></div>
            </div>

复选框也在选择中,但下拉列表不希望被选择。

要设置选择元素,必须使用
val()
like

if (Selected[name] && Selected[name].indexOf(value) !== -1) {
   $el.val(value);
}
请注意,由于
select
元素没有
值的属性,因此计算
值的方法将不起作用

更新

改变

 $('div.list select').each(function () {

    var $el = $(this);
    var name = $el.attr('name');

    if (typeof (Selected[name]) === 'undefined') {
        Selected[name] = [];
    }
    Selected[name].push($el.val());
});

试试这个

if (Selected[name] && Selected[name].indexOf(value) !== -1) {
    $el.attr('selected', 'selected');
}

没有属性
,因此
$el.attr('value')
对于它是
未定义的。您可以使用
$el.val()
来代替。谢谢您的回答,但什么也没有happins@DmitrijHolkin,你能用小提琴复制它吗?或者告诉我在成功回调中
数据
是什么样子的?在回调中,我得到了完整的HTML和我的question@DmitrijHolkin,好的,根据上面的例子,要选择哪个
选项
值?我需要选择所选对象中的值,其中选择标记名=名称,选项文本=文本。或发送POST之前选择的此值。只是想恢复选定的值?在post之后,所有复选框和下拉列表都将重置
   $('div.list select').each(function () {

        var $el = $(this);
        var name = $el.attr('name');

        Selected[name] = $el.val();
    });
if (Selected[name] && Selected[name].indexOf(value) !== -1) {
     $el.prop('selected', true);
 }
if (Selected[name]) {
    $el.val(Selected[name]);
}
if (Selected[name] && Selected[name].indexOf(value) !== -1) {
    $el.attr('selected', 'selected');
}