【问题标题】:Checkbox returns true even when unchecked即使未选中,复选框也会返回 true
【发布时间】:2018-04-02 01:10:00
【问题描述】:

我在使用 if 语句时遇到问题。在此语句中,我想检查一个复选框是否被选中(或 isSelected),然后它将继续执行禁用文本区域的指令。这部分工作正常。但不幸的是,如果未选中该复选框,它仍然会禁用文本区域,但它不应该。它应该启用 textarea。

function auswahl_bestaetigen(){

    tweet = document.getElementById("chk_tweet")
    twitter = document.getElementById("twitter")

    if (tweet.isSelected = true)
                twitter.disabled = true
    else if (tweet.isSelected = false) 
                twitter.disabled = false    
}

我希望有人可以帮助我解决这个问题。在此先感谢:)

【问题讨论】:

  • if (tweet.isSelected = true) 应该是 if (tweet.isSelected)= 表示分配。另外,这不是 Java。
  • 也没有 isSelected 属性
  • 这个问题完全不是很清楚。暗示我们正在谈论 JavaScript 和 HTML DOM,但最好是明确的。 HTML 示例也会有所帮助。理想情况下,您会在一些在线 sn-p 网站(如 jsfiddle.net)上提供有效或损坏的测试。对于主题本身,我会推荐 W3Schools w3schools.com/jsref/dom_obj_checkbox.asp,因为这个问题已经得到了很多回答。请注意,否决票不是我的。当您的问题质量有问题时,您会投下反对票。
  • 拒绝这样的问题只是愚蠢的。没有得到答案应该足以表明问题以错误的格式或错误的位置发布。我不明白为什么有些人认为有必要在此之上投反对票。

标签: javascript html checkbox


【解决方案1】:

用于测试<input type="checkbox"> 是否被选中的属性称为checked。所以你的代码应该是:

if (tweet.checked) {
  twitter.disabled = true
} else {
  twitter.disabled = false
}

甚至更短:

twitter.disabled = tweet.checked

这是一个简单的演示:

var tweet = document.getElementById('chk_tweet')
var twitter = document.getElementById('twitter')
tweet.addEventListener('change', function () {
  twitter.disabled = tweet.checked
});
#twitter[disabled] {
  background: grey;
}
<input id="chk_tweet" type="checkbox" />

<textarea id="twitter"></textarea>

https://jsfiddle.net/foxbunny/m4oda3zy/

【讨论】:

    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 2014-04-10
    • 2023-01-02
    • 2020-12-29
    • 1970-01-01
    相关资源
    最近更新 更多