复选框上的onchange事件始终显示this.value = on

lag*_*lex 3 html javascript checkbox

当触发其onchange事件时,类型复选框的输入this.value始终设置为on即使勾选了复选框,在这种情况下我希望它是off

这是预期的行为吗?

<input type="checkbox" onchange="alert(this.value)">
Run Code Online (Sandbox Code Playgroud)

San*_*dez 12

简短回答:不要value用来检查复选框上的选中状态,checked而是使用

<input type="checkbox" onchange="alert(this.checked)">
Run Code Online (Sandbox Code Playgroud)

如果你想知道为什么这总是"开"值,那么在HTML5规范中有一个规范:

默认情况下/上

获取时,如果元素具有value属性,则必须返回该属性的值; 否则,它必须返回 字符串"on".在设置时,必须将元素的value属性设置为新值.

http://www.w3.org/TR/html5/forms.html#dom-input-value-default-on