【问题标题】:".check" for radio in JSJS 中收音机的“.check”
【发布时间】:2014-10-11 17:10:30
【问题描述】:

这是我的代码:

document.getElementById("frequencyweekly").checked = function() {
    document.getElementById("newsoptions").className = "activesubscription";
};

    <div id="newsoptions">
        <input type="radio" id="frequencyweekly" name="newsletterfrequency">
        <label for="frequencyweekly">Weekly</label>

        <input type="radio" id="frequencymonthly" name="newsletterfrequency">
        <label for="frequencymonthly">Monthly</label>
    </div>

如果选中#frequencyweekly 按钮,我希望我的 .newsoptions div 具有 .activesubscription 类。我该怎么做?

【问题讨论】:

  • 应该是.onclick.checked 只是设置元素的当前状态。

标签: javascript radio checked


【解决方案1】:

checked 是一个布尔值,而不是触发函数的事件,所以你可能想要

if ( document.getElementById("frequencyweekly").checked ) {
    document.getElementById("newsoptions").className = "activesubscription";
}

如果你想在事件处理程序中这样做

var box  = document.getElementById("frequencyweekly"),
    elem = document.getElementById("newsoptions");

box.addEventListener('change', function() {
    if ( this.checked ) {
        elem.classList.add("activesubscription");
    } else {
        elem.classList.remove("activesubscription");
    }
}, false);

【讨论】:

  • 我用的不是onclick,而是更合适的onchange,不过不客气
【解决方案2】:

如果您想在单击框时执行某些操作,请使用onclick 属性。在其中,您可以检查checked 属性。

document.getElementById("frequencyweekly").onclick = function() {
    if (this.checked) {
        document.getElementById("newsoptions").className = "activesubscription";
    } else {
        document.getElementById("newsoptions").className = "";
    }
}

【讨论】:

    猜你喜欢
    • 2013-04-26
    • 2015-02-07
    • 2014-07-29
    • 2018-11-19
    • 2011-06-04
    • 2019-03-07
    • 2018-04-15
    • 2018-10-10
    相关资源
    最近更新 更多