当用户确认错误时,如何取消选择列表中的选定选项(取消)

时间:2013-02-22 01:58:01

标签: javascript dom

我有这个JavaScript代码:

function change(varam){
    if(confirm("Select this option?"))
    {

    } else {
        if(varam=="1")
        {
            alert("Return selected to NO");
        } else {
            alert("Return selected to YES");
        }
    }

}

HTML代码:

<select id="sel" name="sel" onchange="change(this.value)">
    <option value="1">YES</option>
    <option value="0">NO</option>
</select>

我想要的是什么:

假设所选默认值为 YES 。如果用户选择,则出现确认框,如果他想要更改为,如果选择为“确定”,则选项将被选中,如果选择是“取消”,则不选择选项,但选择返回选项。反之亦然。

看到这个小提琴:http://jsfiddle.net/CtxUy/

2 个答案:

答案 0 :(得分:1)

您可以迭代选项并选择具有selected属性的选项。如果没有,请选择第一个(在缺少selected属性时始终为默认值。)

var select = document.getElementById('sel');
var options = select.options;
options[0].selected = true; // preemptively select the first option

for (var i = 0, l = options.length; i < l; i++) {
    if (options[i].hasAttribute('selected')) {
        options[i].selected = true;
        break;
    }
}

DEMO

参考: HTMLSelectElementHTMLOptionElement

答案 1 :(得分:1)

如果您只关心这两个元素,可以手动设置值:

if(varam=="1")
{
    document.getElementById('sel').value = 0;
} else {
    document.getElementById('sel').value = 1;
}

如果可能存在其他值,您可以做的是跟踪最初选择的值并将选择器值设置回拒绝确认时的值,或者如果确认则覆盖该存储值。

像这样:http://jsfiddle.net/CtxUy/2/