即使未选中,复选框也会返回true

时间:2017-10-20 19:44:44

标签: javascript html checkbox

我在使用if语句时遇到问题。在此语句中,我想检查复选框是否选中true(或isSelected),然后它将继续执行禁用textarea的指令。这部分工作正常。但不幸的是,如果未选中该复选框,它仍会禁用textarea,但它不应该。它应该启用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    
}

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

1 个答案:

答案 0 :(得分:4)

测试<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/