JavaScript确认框…取消时还原更改

JavaScript确认框…取消时还原更改,javascript,jquery,Javascript,Jquery,我有一个下拉框,如图所示: 当我更改主题时,会出现如下所示的警告框: 代码: $("#createquiz_subject").bind("change", (function() { if(quiz.length !== 0){ var r = confirm("The questions selected will be cleared"); if (r === true) { $("#leftValues").empty();

我有一个下拉框,如图所示:

当我更改主题时,会出现如下所示的警告框:

代码:

$("#createquiz_subject").bind("change", (function() { 
    if(quiz.length !== 0){ 
    var r = confirm("The questions selected will be cleared"); 
    if (r === true) { 
        $("#leftValues").empty(); 
    } else { 

    } 
 } 
}));
如果单击“确定”,则主题和课程将更改。单击“取消”时也会发生同样的情况。 当用户单击“取消”时,我希望主题与更改之前的主题保持一致。
如何执行此功能。

只有一种方法。伪代码是:

<script>
   var lastvalue = null;
</script>

<select .... onmousedown="lastvalue = this.index">

....
</select>

oncancel 
  select.index = lastvalue

var lastvalue=null;
....
oncancel
select.index=lastvalue

根据您的实现和使用的jquery调整代码(如果使用)

您可以通过首先记住当前选定的部分,然后手动恢复到该部分来解决此问题

var subject = $('#creatquiz_subject');
var currentSubj = subject.val();
subject.bind("change", (function() { 
    if (!quiz.length) { return; } // Better to just short-circuit here?
    if (confirm("The questions selected will be cleared")) { 
        $("#leftValues").empty();
        currentSubj = subject.val(); // Update the current subject var
    } else { 
        subject.val(currentSubj);  // Reset to current subject
    } 
}));

问题是什么。为什么会被否决。我已经尝试并测试了它。首先,它是一个引人注目的JavaScript。你现在不会写这样的代码了。其次,这是一个jQuery问题。@cr0ss你是什么意思?请分享JSFIDLE。在start function()之前,您不需要额外的括号。@BhushanKawadkar我如何共享jsfiddle访问此项只需在相应区域添加代码,从左侧选择jquery library并进行更新。它将更改浏览器中的url。复制该url并与我们共享;使用console.log,它显示未定义。