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

时间:2015-04-29 01:09:59

标签: javascript html checkbox

在触发其onchange事件时输入类型复选框,this.value始终设置为on,即使勾选了复选框,我希望它为off {1}}

这是预期的行为吗?

<input type="checkbox" onchange="alert(this.value)">

1 个答案:

答案 0 :(得分:12)

简短回答:请勿使用value检查复选框上的已检查状态,而是使用checked

&#13;
&#13;
<input type="checkbox" onchange="alert(this.checked)">
&#13;
&#13;
&#13;

如果你想知道为什么总是这样 - &#34; on&#34;值,HTML5规范中有一个规范:

  

默认/上

     

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

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