如何实现“全选” HTML 中的复选框?
我有一个带有多个复选框的 HTML 页面。
我还需要一个名为“全选”的复选框。 当我选择此复选框时,必须选择 HTML 页面中的所有复选框。 我怎样才能做到这一点?
I have an HTML page with multiple checkboxes.
I need one more checkbox by the name "select all". When I select this checkbox all checkboxes in the HTML page must be selected. How can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(30)
演示 http://jsfiddle.net/H37cb/
Demo http://jsfiddle.net/H37cb/
当您调用
document.getElementsByName("name")
时,您将获得一个Object
。 使用.item(index)
遍历Object
HTML 的所有项目:
When you call
document.getElementsByName("name")
, you will get aObject
. Use.item(index)
to traverse all items of aObject
HTML:
稍微改变的版本,尊重地检查和取消检查
Slightly changed version which checks and unchecks respectfully
我的简单解决方案允许有选择地选择/取消选择表单给定部分中的所有复选框,同时为每个复选框使用不同的名称,以便在表单已发布。
Javascript:
HTML 示例:
希望您喜欢!
My simple solution allows to selectively select/deselect all checkboxes in a given portion of the form, while using different names for each checkbox, so that they can be easily recognized after the form is POSTed.
Javascript:
HTML example:
I hope you like it!
尝试这个简单的 JQuery:
Try this simple JQuery:
这相当简单:
It's rather simple:
此示例适用于本机 JavaScript,其中复选框变量名称有所不同,即并非全部为“foo”。
This sample works with native JavaScript where the checkbox variable name varies, i.e. not all "foo."
JavaScript 是你最好的选择。 下面的链接给出了使用按钮取消/全选的示例。 您可以尝试将其调整为使用复选框,只需使用“全选”复选框“onClick 属性即可。
用于选中或取消选中所有复选框的 Javascript 函数
此页面有一个更简单的示例
http://www.htmlcodetutorial.com/forms/_INPUT_onClick.html
JavaScript is your best bet. The link below gives an example using buttons to de/select all. You could try to adapt it to use a check box, just use you 'select all' check box' onClick attribute.
Javascript Function to Check or Uncheck all Checkboxes
This page has a simpler example
http://www.htmlcodetutorial.com/forms/_INPUT_onClick.html
如果采用 jQuery 的最佳答案,请记住传递给单击函数的对象是 EventHandler,而不是原始的复选框对象。 因此代码应修改如下。
HTML
JavaScript
If adopting the top answer for jQuery, remember that the object passed to the click function is an EventHandler, not the original checkbox object. Therefore code should be modified as follows.
HTML
Javascript
这应该完成工作:
that should do the job done:
由于我无法评论,这里作为答案:
我会用更通用的方式写 Can Berk Güder 的解决方案,
所以您可以将该函数重用于其他复选框
As I cannot comment, here as answer:
I would write Can Berk Güder's solution in a more general way,
so you may reuse the function for other checkboxes
您可能同一表单上有不同组的复选框。 这是一个通过类名选择/取消选择复选框的解决方案,使用普通的 javascript 函数 document.getElementsByClassName
全选按钮
一些用于选择的复选框
javascript
You may have different sets of checkboxes on the same form. Here is a solution that selects/unselects checkboxes by class name, using vanilla javascript function document.getElementsByClassName
The Select All button
Some of the checkboxes to select
The javascript
这就是它的作用,例如,如果您有 5 个复选框,然后单击全部选中,它会选中全部,现在,如果您取消选中所有复选框,可能通过单击每 5 个复选框,那么当您取消选中最后一个复选框时,选择所有复选框也都被取消选中
This is what this will do, for instance if you have 5 checkboxes, and you click check all,it check all, now if you uncheck all the checkbox probably by clicking each 5 checkboxs, by the time you uncheck the last checkbox, the select all checkbox also gets unchecked
使用 jQuery 和淘汰赛:
通过此绑定主复选框与底层复选框保持同步,除非所有复选框均已选中,否则它将被取消选中。
在 HTML 中:
Using jQuery and knockout:
With this binding main checkbox stays in sync with underliying checkboxes, it will be unchecked unless all checkboxes checked.
in html:
使用 jQuery 制作简写版本
全选复选框
子复选框
jQuery
to make it in short-hand version by using jQuery
The select all checkbox
The children checkbox
jQuery
下面的方法非常容易理解,您可以在几分钟内实现现有的表单
以 HTML 形式放在按钮下方
以 HTML 形式放在按钮下方
Below methods are very Easy to understand and you can implement existing forms in minutes
in HTML form put below buttons
in HTML form put below buttons
您可以使用此代码。
You can Use This code.
这是backbone.js 的实现:
Here is a backbone.js implementation:
html
javascript
html
javascript
1:添加onchange事件处理程序
2:修改代码以处理选中/未选中
1: Add the onchange event Handler
2: Modify the code to handle checked/unchecked
您可以使用这个简单的代码
You can use this simple code
也许有点晚了,但是在处理全选复选框时,我相信您还应该处理选中全选复选框,然后取消选中下面的复选框之一的情况。
在这种情况下,它应该自动取消选中全部选中复选框。
此外,当手动检查所有复选框时,您最终应该自动检查“检查所有”复选框。
您需要两个事件处理程序,一个用于选中所有框,另一个用于单击下面的任何单个框时。
Maybe a bit late, but when dealing with a check all checkbox, I believe you should also handle the scenario for when you have the check all checkbox checked, and then unchecking one of the checkboxes below.
In that case it should automatically uncheck the check all checkbox.
Also when manually checking all the checkboxes, you should end up with the check all checkbox being automatically checked.
You need two event handlers, one for the check all box, and one for when clicking any of the single boxes below.
更新:
foreach...in
构造似乎不起作用,至少在本例中,在 Safari 5 或 Chrome 5 中。此代码应该适用于所有浏览器:UPDATE:
The
for each...in
construct doesn't seem to work, at least in this case, in Safari 5 or Chrome 5. This code should work in all browsers:使用 jQuery:
Using jQuery:
我不确定是否有人以这种方式回答(使用 jQuery):
它很干净,没有循环或 if /else 子句并起到魅力作用。
I'm not sure anyone hasn't answered in this way (using jQuery):
It's clean, has no loops or if/else clauses and works as a charm.
我很惊讶没有人提到
document.querySelectorAll()
< /a>. 纯 JavaScript 解决方案,适用于 IE9+。I'm surprised no one mentioned
document.querySelectorAll()
. Pure JavaScript solution, works in IE9+.这是一种不同的方式,更少的代码
here's a different way less code