返回false时保留下拉值

时间:2011-05-02 01:48:01

标签: javascript jquery drop-down-menu

对于下面的下拉列表,当我选择任何值时,我必须做一个确认(OK / Cancel),如果用户选择Cancel,我需要保留以前的状态。发生了什么事情,当点击取消并执行return false;时,新值被选中,而不是保留以前的值。单击取消时,如何确保选择上一个值。我尝试使用以下代码,但似乎没有帮助:

var ele = document.getElementById('mySelect');
ele.selected = ele.defaultSelected;            
return false;

<select id="mySelect" multiple="multiple">
  <option value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
  <option value="4">Fourth</option>
</select>

2 个答案:

答案 0 :(得分:1)

你走了:))

<script type="text/javascript">
$(document).ready(function () {
   $("#mySelect").mousedown(function() {
         var old_value = $("#mySelect").val();
         var confirm_selection = confirm("Are you sure?");
         if (!confirm_selection)
         {
            $("#mySelect").val(old_value);
            return false;
         }
    }); 

});

</script>

只需将确认文字更改为您喜欢的任何内容。

必须使用mousedown()而不是change(),因为在使用更改时,将在选择新项目后调用该函数,因此无法知道选择了以前的项目。

答案 1 :(得分:0)

我认为 - 我认为 - 唯一的解决方案是保留先前选择的值并在取消时再次设置它。您可以使用val()轻松设置所选内容的值。

简言之:

prev_val = $('#myselect').val();

if (cancel) {
    $('#myselect').val(prev_val);
}