checkBox只有两种值:选中(checked)或未选中(unchecked)。它可以有任何值,但是表单提交时checkBox的值只能是checked或unchecked。它的默认值是unchecked,你可以在HTML中这样控制它:
<span style="color: #008000;">
<span style="color: #0000ff;"><<span style="color: #800000;">input <span style="color: #ff0000;">type<span style="color: #0000ff;">="checkBox"<span style="color: #ff0000;"> checked<span style="color: #0000ff;">="checked" <span style="color: #0000ff;">/>
<span style="color: #008000;">
<span style="color: #0000ff;"><<span style="color: #800000;">input <span style="color: #ff0000;">type<span style="color: #0000ff;">="checkBox"<span style="color: #ff0000;"> checked<span style="color: #0000ff;">>
视觉上,checkBox有三种状态:checked、unchecked、indeterminate(不确定的)。看起来就像这样子:
对于indeterminate状态的checkBox需要注意的是:你无法在HTML中设置checkBox的状态为indeterminate。因为HTML中没有indeterminate这个属性,你可以通过Javascript脚本来设置它
或者通过jQuery来设置
checkBox的indeterminate状态仅仅是视觉上的,它的值仍然只有checked或unchecked,这意味着indeterminate状态的checkBox的真正价值只是在用户界面上看起来更友好!
indeterminate状态的checkBox在不同浏览器里外观不同,下图是它在Mac下Opera 11.50的外观:
案例
我写这篇文章的主要原因是我有一个有用的案例:在嵌套的checkBox中,每一个checkBox都可能有很多个子checkBox,如果所有子checkBox都选中了,它也应该选中;如果没有一个子checkBox选中,它也不选中;如果有一部分子checkBox选中,它应该是indeterminate状态(在这种情况下,象征着部分子元素选中).
完整demo(原作者的demo有点问题,这里我做了个简化
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js">
<div id="page-wrap">
<h1>check<a href="https://www.jb51.cc/tag/Box/" target="_blank" class="keywords">Box</a>的第三种状态</h1>
<ul>
<li>
<input type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" class="keywords">Box</a>" name="tall" id="tall">
<label <span style="color: #0000ff;">for</span>="tall">Tall Things</label>
<ul>
<li>
<input type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" class="keywords">Box</a>" name="tall-1" id="tall-1">
<label <span style="color: #0000ff;">for</span>="tall-1">Buildings</label>
</li>
<li>
<input type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" class="keywords">Box</a>" name="tall-2" id="tall-2">
<label <span style="color: #0000ff;">for</span>="tall-2">Giants</label>
</li>
<li>
<input type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" class="keywords">Box</a>" name="tall-3" id="tall-3">
<label <span style="color: #0000ff;">for</span>="tall-3">Two sandwiches</label>
</li>
</ul>
</li>
<li>
<input type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" class="keywords">Box</a>" name="short" id="short">
<label <span style="color: #0000ff;">for</span>="short">Short Things</label>
<ul>
<li>
<input type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" class="keywords">Box</a>" name="short-1" id="short-1">
<label <span style="color: #0000ff;">for</span>="short-1">Smurfs</label>
</li>
<li>
<input type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" class="keywords">Box</a>" name="short-2" id="short-2">
<label <span style="color: #0000ff;">for</span>="short-2">Mushrooms</label>
</li>
<li>
<input type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" class="keywords">Box</a>" name="short-3" id="short-3">
<label <span style="color: #0000ff;">for</span>="short-3">One Sandwich</label>
</li>
</ul>
</li>
</ul>
</div>
本文翻由博客园译自:,水平有限,如果翻译不当的地方欢迎园友批评指正!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。