我有一个下拉列表
<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);
}
});
发布于 2015-01-26 15:20:58
分别定义它们
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来检索初始值。
发布于 2015-01-26 15:33:39
考虑到您在将select类managerchosen-select-deselect
声明为manager chosen-select-deselect
时的输入错误,您可能想尝试一下:
http://jsfiddle.net/wsejec8L/
(function () {
var lastValue;
$(".manager").on('click', function () {
lastValue = this.value;
}).change(function() {
alert('Previous value: ' + lastValue);
alert('Current value: ' +this.value);
lastValue = this.value;
});
})();
发布于 2015-01-26 15:44:48
请确保您的select元素上有manager
类。您可以使用focus
event而不是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/
https://stackoverflow.com/questions/28146008
复制相似问题