对于下面的下拉列表,当我选择任何值时,我必须做一个确认(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>
答案 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);
}