在更改事件中查找先前选择的下拉列表值

时间:2014-11-27 11:49:31

标签: javascript jquery asp.net-mvc-3 html.dropdownlistfor

function LoadData(id) {
var employeeId = $.trim($("#employeeId").val());
var employeeType = $.trim($("#employeeType").val());

var obj = "";
var CityId = $.trim($("#ddlCity").val());
obj = new ViewModel1(employeeId, employeeType, 0, $.trim($("#DeptName").val()), "", "", $.trim($("#SectionName").val()), CityId);
var postedData = JSON.stringify(obj);

Loader();
$.ajax({
    //...........
    //...........
})

}

我有上面的函数,我想在元素#ddlCity中获取先前选择的值。上面的函数从下面的行中调用。

@Html.DropDownGroupListFor(m => m.CityId, Model.GroupedTypeOptions, new { name = "ddlCity", id = "ddlCityName", @onchange = "javascript:LoadData(this.value)" })

var CityId = $ .trim($(“#ddlCity”)。val());在下拉列表中给我新选择的CityId。

那么我如何获得之前选择的CityId?

2 个答案:

答案 0 :(得分:2)

我会将它存储在select标签的属性中。

说这是你的HTML

`<select data-last-selection>
 ...
 </select>`

现在将这样的内容添加到您的javascript中

$("[data-last-selection]").change(function() {
    var previousData = $(this).data("lastSelection");
    $(this).data("lastSelection",$(this).val());

    // Handle the previous data now stored in previousData variable
});

答案 1 :(得分:2)

也可以将我的评论发布为答案(也是:)。

onchange将新值存储为select元素上的data-属性/数据存储。然后,您可以在后续更改中将其选中。

e.g。 http://jsfiddle.net/TrueBlueAussie/bLc12tu0/

$(".selector").change(function() {
    // Get the previous value (if any)
    var prev = $(this).data("prev");
    // Store the new value for next time
    $(this).data("prev",$(this).val());

    $('#output').html(prev);
}).each(function(){
    // Also save any initial dropdown value as the previous value (for each select)
    $(this).data("prev", $(this).val());
});