在动态填充的下拉式Jquery中设置所选选项

时间:2014-07-30 18:26:05

标签: jquery jquery-ui-selectmenu

我有2个级联下拉菜单:Drop Down A(从数据库填充无静态值)和Drop Down B

用户从下拉列表中选择一个值,并根据下拉列表B中的值(同样来自本地存储的基于数据的表格)。这一切都正常工作

现在让我们说下拉A有项目:Item1,Item 2,Item 3 ....

下拉B具有第1项的值:10,20,30

对于第2项:10,50,40

对于第3项:20,70,90。

用户选择第1项并选择值" 10"从Down B,页面提交以及新条目,他选择第2项,

现在我的要求是,如果用户选择了第2项,那么我的下拉B应该自动默认为值"!0"因为这是用户选择的最后一个值,这也是第2项存在的值。

我正在动态创建这两个下拉列表:

function some (){

    var numUnits = measureSet.length;
    var htmlOutput = '<select name="select-choice-a_point" class="ui-select" id="select-choice-a_point" data-native-menu="false"><option>Select a Fluid Type</option>';
    for ( var i = 0; i < numUnits; i++) {

        htmlOutput += '<option value="' + measureSet[i] + '">' + measureSet[i]
        + '</option>';
    }
    htmlOutput += '</select>';

    $("#select-choice-a_point-button").remove();
    $("#select-choice-a_point").remove();
    $("#pointlabel").after(htmlOutput);
    $("#select-choice-a_point").selectmenu();

}

有人可以建议我如何将值设置为动态创建和填充的下拉列表中的最后一个选定值?


我已经尝试过了,它没有用,它仍然显示默认值,即#34;选择流体类型&#34;请看下面的代码

  function abc(){


   var setLength = measureSet.length;
   var valueSet = false;
    alert(prevFuelType);
     for ( var i = 0; i < setLength; i++) {

            if(prevFuelType == measureSet[i]){

        alert("inside condition");
        valueSet =  true;
        break;
    }
}
var htmlOutput = '<select name="select-choice-a_point" class="ui-select"  id="select-choice-a_point" data-native-menu="false"><option>Select a Fluid Type</option>';


var numUnits = measureSet.length;

for ( var i = 0; i < numUnits; i++) {


    htmlOutput += '<option value="' + measureSet[i] + '">' + measureSet[i]
    + '</option>';
}
htmlOutput += '</select>';

$("#select-choice-a_point-button").remove();
$("#select-choice-a_point").remove();
$("#pointlabel").after(htmlOutput);
$("#select-choice-a_point").selectmenu();
if(valueSet == true){
    alert("bout to set");
    //$("select[id$='select-choice-a_point'] option:selected").removeAttr("selected");
    //$("select[id$='select-choice-a_point'] option[value="+ prevFuelType + ']").attr("selected","selected");

        /*  $('#select-choice-a_point option:[text="' + prevFuelType + '"]').attr('selected', true);
    $('#select-choice-a_point option:[value="' + prevFuelType + '"]').attr('selected', true);*/
    $("#select-choice-a_point").val(prevFuelType);
    $("#select-choice-a_point").text(prevFuelType);
}



$('#measurepointfield').show();
}

1 个答案:

答案 0 :(得分:1)

// drop_down_A changes. What happens now?
var last_val = $('#drop_down_B').val(); // let's keep the current value;
// now, you do your magic and repopulate $('#drop_down_B')
// ..
// ..
$('#drop_down_B').val(last_val); 
// if the value exists it will be selected, otherwise nothing will happen