我需要检测comboBox的选定值,如果选择了某个值,则生成一个确认对话框。如果确认为假,我需要恢复到更改之前的值。我正在尝试使用隐藏字段来保存更改前的值。这不起作用......
更新:当我添加警报以查看该值是否实际在隐藏字段中设置时,一切正常。如果我删除警报,则更改永远不会发生。某种时间问题?我延迟更换了警报,它没有解决任何问题。有什么想法吗?
jQuery('#cboCityID1').focus(function() {
if(jQuery('#cboCityID1').val() != '') {
jQuery('#hiddencity1').val(jQuery('#cboCityID1').val());
}
});
jQuery('#cboCityID1').change(function() {
alert("as debug 1: " + jQuery('#hiddencity1').val());
if(jQuery('#cboCityID1').val() == '') {
var r = confirm("Are you sure");
if(!r) {
jQuery('#cboCityID1').val(jQuery('#hiddencity1').val());
}
}
});
答案 0 :(得分:1)
不需要隐藏输入!
A similar question建议使用$.data
,如此:
$('select').change(function() {
var selected = $(this).val();
if (selected == 'bar') {
if (!confirm('Are you sure?')) {
$(this).val($.data(this, 'current'));
return false;
}
}
$.data(this, 'current', $(this).val());
});
我使用建议的方法创建了JSFiddle(没有隐藏的输入)
答案 1 :(得分:0)
(function () {
var previous;
$("select").focus(function () {
previous = this.value;
}).change(function() {
var r = confirm("Are you sure");
if(!r)
$('#cboCityID1').val(jQuery('#hiddencity1').val(previous ));
});
})();