3

我有这个 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。如果用户选择NO,是否要更改为NO会出现确认框,如果选择“OK”,则选择NO选项,如果选择“CANCEL”则不选择NO选项,而是返回到YES选项被选中。反之亦然。

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

4

2 回答 2

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

演示

参考资料: HTMLSelectElement , HTMLOptionElement.

于 2013-02-22T02:06:16.897 回答
1

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

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

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

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

于 2013-02-22T02:09:41.563 回答