如何使用jQuery单击取消按钮时还原下拉选择选项?

时间:2014-12-03 19:29:47

标签: jquery

大家好,我从网上获取了以下代码,并根据我的需要进行了修改,但没有按预期工作。

var lastValue;

$("#changer").bind("click", function(e){
    lastValue = $(this).val();
}).bind("change", function(e){
    changeConfirmation = confirm("Really?");
    if (changeConfirmation) {
        // Proceed as planned
    } else {
        //$(this).val(lastValue);
        DummyFun();
    }
});

function DummyFun()
{
    alert(lastValue);
    $(this).val(lastValue);
}

以下是我来自的代码,它工作正常fiddle。我怎样才能使我的工作像小提琴一样?

2 个答案:

答案 0 :(得分:1)

您不能在DummyFun函数中使用$(this)来引用select元素,因为它超出了范围。

function DummyFun()
{
    alert(lastValue);
    $("#changer").val(lastValue);
}

答案 1 :(得分:1)

问题是DummyFun功能。 this并不是指元素输入不再在范围内。 this指的是调用函数的内容。使用以下内容:

var lastValue;

$("#changer").bind("click", function(e){
    lastValue = $(this).val();
}).bind("change", function(e){
    changeConfirmation = confirm("Really?");
    if (changeConfirmation) {
        // Proceed as planned
    } else {
        //$(this).val(lastValue);
        DummyFun(e.currentTarget);
    }
});

function DummyFun(target)
{
    alert(lastValue);
    $(target).val(lastValue);
}