我是javascript的新手,我的代码如下所示
<select name="dropdown" onChange="javascript: alertUser()" >
<option value="0" selected>Eat</option>
<option value="1">Work</option>
<option value="2">Sleep</option>
<option value="3" >Enjoy</option>
function alertUser()
{
confirm("Are you sure?");
}
现在,这是我的问题。
当我从下拉列表中选择一个元素时,它会弹出确认对话框“你确定吗?”。如果单击“确定”,则选择应更改为选定值。如果取消,则所选值应重置为下拉列表中先前选择的值。
有人可以帮我解决问题。
谢谢
答案 0 :(得分:1)
您可以使用:
window.onload = function () {
var select = document.getElementsByName('dropdown')[0];
var lastselected = select.value;
select.onchange = function () {
var newselected = select.value;
if (confirm("Are you sure?")) {
lastselected = newselected
return true;
}
select.value = lastselected;
}
};
我添加了onload,因此它会在页面加载时运行。我删除了你的内联js,更干净。所以你的HTML将是:
<select name="dropdown">
<option value="0" selected>Eat</option>
<option value="1">Work</option>
<option value="2">Sleep</option>
<option value="3">Enjoy</option>
</select>
答案 1 :(得分:0)
这是使用'selectedIndex'方法的替代方法。
http://jsfiddle.net/thetenfold/UjYg2/
HTML
<select name="dropdown">
<option value="0" selected>Eat</option>
<option value="1">Work</option>
<option value="2">Sleep</option>
<option value="3">Enjoy</option>
</select>
的JavaScript
function addEvent(elem, type, func) {
if (elem.addEventListener) {
elem.addEventListener(type, func, false);
} else if (elem.attachEvent) {
elem.attachEvent('on' + type, func);
}
}
addEvent(window, 'load', function () {
var select = document.getElementsByName('dropdown')[0],
last = select.selectedIndex;
addEvent(select, 'change', function () {
if( confirm('Are you sure?') ) {
last = select.selectedIndex;
} else {
select.selectedIndex = last;
}
});
});