javascript - 在更改之前获取选择(下拉)的值

标签 javascript jquery jquery-events

我想要实现的是每当 <select>下拉列表已更改我想要更改之前下拉列表的值。我正在使用 1.3.2 版本的 jQuery 并使用 on change 事件,但我得到的值是在更改之后。

<select name="test">
<option value="stack">Stack</option>
<option value="overflow">Overflow</option>
<option value="my">My</option>
<option value="question">Question</option>
</select>

假设当前选项 My 在我在 onchange 事件中将其更改为堆栈时(即当我将其更改为堆栈时)被选中,我希望它是以前的值,即我在这种情况下的预期值。

如何做到这一点?

编辑:在我的情况下,我在同一页面中有多个选择框,并且希望将相同的内容应用于所有这些框。此外,我的所有选择都是在通过 ajax 加载页面后插入的。

最佳答案

focus 事件与 change 事件结合起来,达到你想要的效果:

(function () {
    var previous;

    $("select").on('focus', function () {
        // Store the current value on focus and on change
        previous = this.value;
    }).change(function() {
        // Do something with the previous value after the change
        alert(previous);

        // Make sure the previous value is updated
        previous = this.value;
    });
})();

工作示例:http://jsfiddle.net/x5PKf/766

关于javascript - 在更改之前获取选择(下拉)的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4076770/

相关文章:

javascript - 将 canvas.toDataURL() 作为 FormData 发送

javascript - 监听Bootstrap DatetimePicker中的点击事件

javascript - 使用 Node 框架运行简单的 javascript 时出错

javascript - 对象变量中的事件

jquery - 尝试使用 jQuery 到达第 2 表第 7 行第 1 td

c# - 如何在 C# 中使用 RegisterStartupScript 和 jquery 显示带有动画的面板?

jquery - 如何使用 jQuery 自动跳到下一个字段?

javascript - 为 DOM 中所有元素的点击事件附加事件处理程序

javascript - Codeigniter:在动态文本框/文本区域上生成 id

javascript - 解释递归如何在算法中工作以确定二叉树的深度?