带有Javascript函数的HTML复选框
我只是想通过在Javascript中运行一个函数,让这个复选框在选中消息和取消选中消息之后发出警报。我可以让它显示“已检查”消息,但无法显示“未检查”警报带有Javascript函数的HTML复选框,javascript,html,Javascript,Html,我只是想通过在Javascript中运行一个函数,让这个复选框在选中消息和取消选中消息之后发出警报。我可以让它显示“已检查”消息,但无法显示“未检查”警报 <input type="checkbox" id="chbx" onchange="foo()"> <script type="text/javascript"> var checkbox = document.getElementById("chbx"); function foo(){ if(check
<input type="checkbox" id="chbx" onchange="foo()">
<script type="text/javascript">
var checkbox = document.getElementById("chbx");
function foo(){
if(checkbox.checked=true){
alert("Checked!");
}
else {
alert("UnChecked!");
}
};
</script>
var checkbox=document.getElementById(“chbx”);
函数foo(){
如果(checkbox.checked=true){
警报(“已检查!”);
}
否则{
警报(“未选中!”);
}
};
您没有使用=
比较值。需要至少是==
,更好==
if(checkbox.checked === true) {}
或者,简化
if(checkbox.checked) {}
在if语句中,您得到了单等号而不是双等号:
if (checkbox.checked=true) {
应该是
if (checkbox.checked == true) {
或者只是
if (checkbox.checked) {
您犯了一个经常犯的错误,即使用单个
=
此实际设置了复选框。选中为true。如果要进行比较,请确保使用双精度==
此外,复选框只有两个选项;因此,如果不打开,则关闭:
这就是我应该做的:
<input type="checkbox" id="chbx" onchange="checkbox_changed()">
<script type="text/javascript">
var checkbox = document.getElementById("chbx");
function checkbox_changed() {
if (checkbox.checked == true) {
alert("Checked!");
} else {
alert("UnChecked!");
}
}
</script>
var checkbox=document.getElementById(“chbx”);
函数复选框_已更改(){
如果(checkbox.checked==true){
警报(“已检查!”);
}否则{
警报(“未选中!”);
}
}
您需要使用=
或===
,因为您所做的是设置值(每次都为true)。第二种形式最好。(没关系,我看到你删掉了不正确的语法。)谢谢你,效果很好。@DanBarzilay:对不起?为什么不呢,===
只是比较类型和值,所以它更精确。即使它在这里没有什么区别,我只是提到了它的“更好”。==
表示类型,布尔值表示布尔值,不管它是真是假。。应该是==
@DanBarzilay:我不同意你的看法。仅为方便起见,此语言中应始终使用==
,以避免与types@DanBarzilay-可以。例如,Crockford说总是使用=
。因此,在这种情况下,这不是“错误”或“不好”,只是碰巧两者都是等效的,并且在这种情况下工作。@JaredFarrish对不起,我的错误。你犯的错误与OP在该条件下犯的错误相同(单个=
)。