我有一个像这样的选择标签
<select class="selecttag" onchange="onchangeEvent()">
<option value="1">value1</option>
<option value="2">value2</option>
<option value="3">value3</option>
<option value="4">value4</option>
</select>
如何在onchange事件之前获得选择选项?
答案 0 :(得分:3)
您可以将值存储在focus
事件的元素数据中。
e.g。类似的东西:
$('.selecttag').on('focus', function(){
$(this).data("value", $(this).val());
})
然后在更改事件中,您将获得data("value")
。
e.g。
$('.selecttag').on('change', function(){
var orig = $(this).data("value");
var newVal = $(this).val();
// Save the newer value
$(this).data("value", $(this).val());
// Do something with both values!
});
inline
事件处理程序与jQuery混合使用。这样可以避免将事件注册与事件处理程序分开,并启用jQuery提供的额外事件功能。e.g。
$('.selecttag').on('focus', function(){
$(this).data("value", $(this).val());
}).on('change', function(){
var orig = $(this).data("value");
var newVal = $(this).val();
// Save the newer value
$(this).data("value", $(this).val());
// Do something with both values!
});
第一次重点实际上是多余的,所以你可以这样做一次,如下:
$('.selecttag').one('focus', function(){
$(this).data("value", $(this).val());
}).on('change', function(){
var orig = $(this).data("value");
var newVal = $(this).val();
// Save the newer value
$(this).data("value", $(this).val());
// Do something with both values!
});
答案 1 :(得分:0)
在var中设置先前的值,并在更改时更新它。您的onchange
应该在JS中管理:
var prev = $("#select").val();
$("#select").on("change", onchangeEvent);
function onchangeEvent() {
var curr = $("#select").val();
console.log("Prev: " + prev, "Current: " + curr);
prev = curr;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="select" class="selecttag">
<option value="1">value1</option>
<option value="2">value2</option>
<option value="3">value3</option>
<option value="4">value4</option>
</select>
&#13;
答案 2 :(得分:0)
在做这样的事情之前,我会抓住#selecttag
的当前值:
$(document).ready(function(){
var selected = $(".selecttag option:selected");
// do whatever after this
});
答案 3 :(得分:-2)
您可以使用jQuery获取值。
$( "#selecttag" ).val();