设置选择选项

德米特里·霍尔金(Dmitry Holkin)

我有一些选择下拉菜单

            <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>

我试图在POSt之后将选定的值重新设置,但是没有任何问题

$(function() {

$('div.list input[type=checkbox]').on('change',onValueChange);     
$('div.selector select').on('change', onValueChange);

function onValueChange() {

    var Checked = {};
    var Selected = {};
// Hold all checkboxes
    $('div.list input[type=checkbox]:checked').each(function () {
        var $el = $(this);
        var name = $el.attr('name');
        if (typeof (Checked[name]) === 'undefined') {
            Checked[name] = [];
        }
        Checked[name].push($el.val());
    });
// Hold all dropdowns
    $('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());
    });

// Put all together to POST 
    $.ajax({
        url: '/Search.asp',
        type: 'POST',
        data: $.param(Checked) + "&" + $.param(Selected),
        dataType: 'text',
        success: function (data) {
            $("#ExSearchForm").html(data)
                .find('div.list input[type=checkbox],div.selector select').each(function () {
                    var $el = $(this);
                    var name = $el.attr('name');
                    var value = $el.attr('value');

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

复选框也在选择中,但不想选择下拉列表。

AmmarCSE

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

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

注意,你的方式计算value作为你将无法正常工作select元素没有一个属性value

请参阅设置选择框的选定选项

更新

改变

 $('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());
});

   $('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]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章