开发者

Yes/No confirmation message

I'm trying to get an alert message with Yes/No option, where clicking on 'Yes' reloads a another drop-down option, and 'No' would revert back to the previous selection. Here is what I'm trying to say (obviously doesn't work):开发者_C百科

<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>

Many thanks in advance. Feel free to click, and edit.


I'm not too sure what you are trying to accomplish... is it 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);
    }
});​


JavaScript's confirm() only displays OK and Cancel, not Yes or No.

Could you return false instead of break, because you are in a function?

Also, returning false does not cancel the change event. What you will need to do is store the previous selectedIndex, and if you have the confirm() return false, then set the selectedIndex back to the previous one.

Also, I hope you are wrapping that jQuery inside script elements and inside a $(document).ready().


Try removing the

break;

I tried to run the code and Firebug halts the code when it gets to that part

Best regards,

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜