是/否确认消息

时间:2010-09-03 01:50:24

标签: javascript jquery

我正在尝试使用“是/否”选项获取警告消息,其中单击“是”会重新加载另一个下拉选项,“否”将恢复为之前的选择。这是我想说的(显然不起作用):

<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随意编辑。

3 个答案:

答案 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在到达该部分时暂停代码

致以最诚挚的问候,