【问题标题】:JavaScript radio onclick processed before UI reflects selection在 UI 反映选择之前处理 JavaScript 单选按钮
【发布时间】:2020-03-11 03:26:15
【问题描述】:

我有以下 JavaScript 代码:

var radios = form.elements["option_filter"];
for (var i = 0, max = radios.length; i < max; i++) {
    if (typeof (radios[i].value) !== 'undefined') {
        radios[i].onclick = function () {
            var l = this.nextElementSibling.innerText;
            <code to create a path containing selection>
            window.location.replace(dest);
        }
    }
}

这工作正常,除了当单击单选时,选择被认为已在代码中选中,但这不会反映在 UI 中...单选按钮在处理重定向时保持空白。

我尝试让它在 onclick 触发和重定向之间休眠一点,但无济于事。

如何让 UI 反映选择更改,以便用户在等待新页面加载时看到它被选中?

【问题讨论】:

    标签: javascript onclick radio-button


    【解决方案1】:

    要让 UI 反映...您需要将目标单选按钮的值设置为一个值...

    radio[i].value = "whatever"
    

    还请记住,设置的值必须与选项中单选按钮之一的name 匹配...

    【讨论】:

    • 被你的意图弄糊涂了。鉴于存在要单击的 radio[i],它已经有一个值(它确实......它不是未定义的),因此它是 radio[i].value = radio[i].value 的情况。我想也许你的意思是我需要做 radio.value=radio[i].value,但这也不影响它。
    • 会不会是 click 事件在 radio change 事件之前触发?我是否需要处理无线电更改事件?
    • 我相信onchangeoninput(取决于最终目标)会更合适...
    猜你喜欢
    • 1970-01-01
    • 2015-11-16
    • 2018-05-15
    • 2017-03-29
    • 1970-01-01
    • 2015-02-27
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多