我正在尝试使用“是/否”选项获取警告消息,其中单击“是”会重新加载另一个下拉选项,“否”将恢复为之前的选择。这是我想说的(显然不起作用):
<select size="1" name="m" id="m">
<option selected value="1">apple</option>
<option value="2">ball</option>
<option value="3">cat</option>
<option value="4">dog</option>
<option value="5">egg</option>
</select>
$('#m').change(function() {
var answer = confirm("this will change your selection.");
if (answer) { // ie, if i click 'OK'
location.reload(); // reload the <select> option below to "selected"
} else {
break; // revert back to the previous selection
}
});
<select size="1" name="a" id="a">
<option selected value="1">aaa</option>
<option value="2">bbb</option>
<option value="3">ccc</option>
</select>
非常感谢提前。您可以click随意编辑。
答案 0 :(得分:2)
JavaScript的confirm()
仅显示确定和取消,而不是是或否。
你可以return false
而不是break
,因为你在function
吗?
此外,返回false
不会取消更改事件。您需要做的是存储之前的selectedIndex
,如果confirm()
返回false,则将selectedIndex
设置回上一个。
另外,我希望你将jQuery包装在script
元素内和$(document).ready()
内。
答案 1 :(得分:2)
我不太确定你想要完成什么......是this吗?
var _selected = $('#m').val();
$('#m').change(function() {
var answer = confirm("this will change your selection.");
if (answer) { // ie, if i click 'OK'
_selected = $(this).val();
$('#a').val(_selected);
} else {
$(this).val(_selected);
}
});
答案 2 :(得分:0)
尝试删除
break;
我尝试运行代码,Firebug在到达该部分时暂停代码
致以最诚挚的问候,