我有一个下拉
<select name="manager" class="managerchosen-select-deselect" >
<option value="" >Select Manager</option>
<option value="xyz"> XYZ </option>
<option value="abc"> ABC</option>
<option value="pqr"> PQR</option>
</select>
我需要根据此下拉列表中的2个事件发出2个警报。首先是当我点击下拉列表时,必须在警报中显示前一个值,第二个是在下拉列表更改时,当前所选值将显示在警报中。
我尝试过以下jquery代码,但我只收到一个警告,即更改。点击时我没有收到警报。为什么呢?
var lastvalue;
$(".manager").bind("click", function(e){
lastValue = $(this).val();
alert(lastvalue);
}).bind("change", function(e){ alert('value changed');
changeConfirmation = confirm("Are You Sure?");
if (changeConfirmation) {
//proceed
} else {
$(this).val(lastValue);
}
});
答案 0 :(得分:1)
单独定义
var lastvalue;
$(".manager").bind("click", function(e){
lastValue = $(this).val();
alert(lastvalue);
});
$(".manager").bind("change", function(e){
alert('value changed');
changeConfirmation = confirm("Are You Sure?");
if (changeConfirmation) {
//proceed
} else {
$(this).val(lastValue);
}
});
您可以使用defaultValue来检索初始值。
答案 1 :(得分:0)
在将选定的课程managerchosen-select-deselect
声明为manager chosen-select-deselect
时,考虑到您的拼写错误,您可能想尝试一下:
(function () {
var lastValue;
$(".manager").on('click', function () {
lastValue = this.value;
}).change(function() {
alert('Previous value: ' + lastValue);
alert('Current value: ' +this.value);
lastValue = this.value;
});
})();
答案 2 :(得分:0)
请确保您的select元素上有manager
课程。您可以使用focus
事件而不是click
,因为用户可以按Tab键到达下拉菜单,然后使用箭头键更改值,单击将无法在此用例中使用。
(function () {
var lastValue;
$(".manager").on('focus', function () {
lastValue = this.value;
}).change(function() {
alert('Previous value: ' + lastValue);
alert('Current value: ' +this.value);
lastValue = this.value;
});
})();
更新小提琴(使用焦点): http://jsfiddle.net/wsejec8L/1/