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 - 数据库时间戳返回有趣的值

javascript - Slick carousel - 使用 3 张幻灯片和 autoPlay=true 会导致 slider-nav 表现得像有 5 张幻灯片

javascript - Google Visualization API - 图表未显示

jquery - 如何使用jquery将dom对象构建到html中

jquery - 如何禁用 Wijmo 菜单项?

javascript - 设置第一个单选按钮检查并在 jquery 中获取值

javascript - 调整窗口大小时BJQS slider 的多个实例

javascript - Chrome 以外的其他浏览器上的 CSS 动画填充模式?

javascript - 对象在 JavaScript 中没有方法错误

javascript - 在 jQuery 中添加输入并通过单击添加多个输入时出现问题