jQuery如何撤消选择更改

前端之家收集整理的这篇文章主要介绍了jQuery如何撤消选择更改前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个选择框,我想添加一个确认,然后将其更改为特定选项。例:
<select name="select">
    <option value="foo" selected="selected">foo</option>
    <option value="bar">bar</option>
</select>​​​​​​​​​​​​​​​​​​
$('select').change(function() {
    var selected = $(this).val();

    if (selected == 'bar') {
        if (!confirm('Are you sure?')) {
            // set back to prevIoUsly selected option
        }
    }
});

我正在考虑添加一个隐藏的输入字段,并在每次更改选择时更新其值。这样我可以检索更改函数中的上一个值。 Example

<input type="hidden" name="current" value="foo" />
$('select').change(function() {
    var selected = $(this).val();
    var current = $('input[name=current]').val();

    if (selected == 'bar') {
        if (!confirm('Are you sure?')) {
            $(this).val(current);
            return false;
        }
    }

    $('input[name=current]').val(selected);
});

有更容易/更好的方法来完成这个吗?

解决方法

而不是使用全局变量(邪恶)或隐藏元素(滥用DOM),您可以使用 $.data功能
$('select').change(function() {
    var selected = $(this).val();

    if (selected == 'bar') {
        if (!confirm('Are you sure?')) {
            $(this).val($.data(this,'current')); // added parenthesis (edit)
            return false;
        }     
    }

    $.data(this,'current',$(this).val());
});
原文链接:https://www.f2er.com/jquery/184744.html

猜你在找的jQuery相关文章