更改前获取SELECT(下拉)值

更改前获取SELECT(下拉)值

我想要实现的是,每当<select>下拉列表是更改的,我想要在更改之前下拉的值。我使用的是1.3.2版本的jQuery,并在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加载页面之后插入的。


呼唤远方
浏览 834回答 3
3回答

UYOU

我倾向于Avi Pinto的解决方案,它使用jquery.data()使用焦点不是有效的解决方案。它在第一次更改选项时工作,但是如果您停留在SELECT元素上,然后按下“向上”或“向下”键。它不会再经历焦点事件了。所以解决方案应该是如下所示,//set&nbsp;the&nbsp;pre&nbsp;data,&nbsp;usually&nbsp;needed&nbsp;after&nbsp;you&nbsp;initialize&nbsp;the&nbsp;select&nbsp;element$('mySelect').data('pre',&nbsp;$(this).val()); $('mySelect').change(function(e){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;before_change&nbsp;=&nbsp;$(this).data('pre');//get&nbsp;the&nbsp;pre&nbsp;data &nbsp;&nbsp;&nbsp;&nbsp;//Do&nbsp;your&nbsp;work&nbsp;here &nbsp;&nbsp;&nbsp;&nbsp;$(this).data('pre',&nbsp;$(this).val());//update&nbsp;the&nbsp;pre&nbsp;data})
打开App,查看更多内容
随时随地看视频慕课网APP