Javascript选择表中的所有复选框
javascript select all checkboxes in a table
我想做一个页面,有一个不同的网页旁边的复选框表。我希望用户能够选择多个网站,然后使用谷歌栏搜索网站。我有一个表格,其中每个单元格都有一个表单,填充了复选框。每个单元格都有一个checkall按钮,用于检查该单元格中的所有选项。我想添加一个复选框来选择页面上的所有选项。(是的,我可以只是离开这个选项,但我有点想知道如何访问单元格中的所有框,这样我就可以像我想要的那样用谷歌搜索。)这里基本上是我所拥有的。此时需要帮助的是checkPage函数中的section
<html>
<head>
<script type="text/javascript">
function checkAll(checkname, bx) {
for (i = 0; i < checkname.length; i++){
checkname[i].checked = bx.checked? true:false;
}
}
function checkPage(bx){
var bxs = document.getElementByTagName ( "table" ).getElementsByTagName ( "link" );
for(i = 0; i < bxs.length; i++){
bxs[i].checked = bx.checked? true:false;
}
}
</script>
</head>
<body>
<input type="checkbox" name="pageCheck" value="yes" onClick="checkPage(this)"><b>Check Page</b>
<table border="1" name ="table">
<tr>
<td name ="list00">
<form name ="list00">
<input type="checkbox" name="Check_ctr" value="yes" onClick="checkAll(document.list00.link, this)"><b>Check All</b><dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
</form>
</td>
<td><form name ="list01">
<input type="checkbox" name="Check_ctr" value="yes" onClick="checkAll(document.list01.link, this)"><b>Check All</b><dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
</form></td>
</tr>
<tr>
<td><form name ="list10">
<input type="checkbox" name="Check_ctr" value="yes" onClick="checkAll(document.list10.link, this)"><b>Check All</b><dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
</form></td>
<td><form name ="list11">
<input type="checkbox" name="Check_ctr" value="yes" onClick="checkAll(document.list11.link, this)"><b>Check All</b><dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
<input type="checkbox" name="link" value="something.com">something.com<dd>
</form></td>
</tr>
</table>
</body>
</html>
function checkAll(bx) {
var cbs = document.getElementsByTagName('input');
for(var i=0; i < cbs.length; i++) {
if(cbs[i].type == 'checkbox') {
cbs[i].checked = bx.checked;
}
}
}
从复选框的onclick属性调用该函数来选中所有
<input type="checkbox" onclick="checkAll(this)">
编辑我有点误读你的问题,我看到你已经在你的代码中尝试过了。getElementsByTagName必须是复数形式你可能打错了并且必须是上面答案指定的标签
Edit:传递主复选框作为参数将允许切换选中/取消选中,正如vol7ron建议的那样,并在此回答中进行了适当的修改。
问题要求页面上的所有复选框,所以这就足够了。
但是,提供查找复选框的元素的控制可以通过多种方式实现,太多了,无法详细说明,但是可以使用document.getElementById(id)作为示例。如果要控制的所有复选框都是来自一个元素的分支节点,则使用getElementsByTagName。
否则,您可以通过进一步的标记名检索/自定义类名检索进行迭代,仅举几个例子。
示例:http://jsfiddle.net/vol7ron/kMBcW/
function checkPage(bx){
for (var tbls=document.getElementsByTagName("table"), i=tbls.length; i--; )
for (var bxs=tbls[i].getElementsByTagName("input"), j=bxs.length; j--; )
if (bxs[j].type=="checkbox")
bxs[j].checked = bx.checked;
}
你尝试过jQuery吗?它正在成为javascript的DOM操作标准库(stackoverflow使用in)。
您可以使用$(':checkbox')。道具("检查",真正的);检查页面上的每个复选框(但您可能不希望只在表中检查它们)。
无论如何,开始使用jQuery吧,它会让你的生活更轻松,更快乐,而且会节省你很多时间。
using vanilla js
checkAll = box => {
const checkboxes = document.getElementsByTagName('input')
for (const checkbox of checkboxes) {
if (checkbox.type == 'checkbox')
checkbox.checked = box.checked
}
输入你的html
<input type="checkbox" onclick="checkAll(this)">
标签名称是开始html标签eg <input
的位,因此.getElementsByTagName ( "link" )
应该是.getElementsByTagName ( "input" )
,如果您只想要name='link'
,那么if(bxs.name =="link") { ... change the checked }
…或者更简单,如果您想翻转相应表单中的所有复选框:
function checkAll(bx){
var form = bx.form;
var ischecked = bx.checked;
for (var i = 0; i < form.length; ++i) {
if (form[i].type == 'checkbox') {
form[i].checked = ischecked;
}
}
}
…
<input type="checkbox" onclick="checkAll(this)">
对于我来说,它帮助了我。
<template>
<div class="container">
<ul class="list-group pt-1">
<li class="list-group-item align-center">
<button data-bs-toggle="collapse" data-bs-target="#dat_input" aria-expanded="false" aria-controls="income-expense" class="btn btn-sm border border-dark">
Yana
</button>
<nuxt-link :to="`/admin/question/excel/create`" class="btn btn-success btn-sm">Excel orqali test qo'shish</nuxt-link>
<span class="float-end">
<button type="button" accesskey="1" class="btn btn-green btn-sm ">1 kunlik</button>
<nuxt-link :to="`/admin/question`" class="btn btn-danger btn-sm " accesskey="b">Orqaga</nuxt-link>
</span>
</li>
<li id="dat_input" class="list-group-item collapse">
<p>Bu yerga endi biror nima qo`shiladi</p>
</li>
</ul>
<div class="card mt-1">
<table class="table table-sm">
<thead class="table-dark table-sm">
<tr>
<th scope="col" class="text-center">
<input class="form-check-input" type="checkbox" @click="selectAll(this, $event)">
</th>
<th scope="col" class="text-center"><i class="bi bi-sort-numeric-down-alt"></i></th>
<th scope="col" class="text-center"><i class="bi bi-calendar3"></i></th>
<th scope="col" class="float-left">Savol</th>
<th scope="col" class="float-left">To'g'ri javob</th>
<th scope="col" class="text-center"><i class="bi bi-alarm"></i></th>
<th scope="col" class="text-center"><i class="bi bi-cash"></i></th>
<th scope="col" class="text-center"><i class="bi bi-person-plus"></i></th>
<th scope="col" style="width: 7%; text-align: center;"><i class="bi bi-diagram-3"></i></th>
</tr>
</thead>
<tbody>
<tr v-for="(question, id) in questions">
<td width="1%" class="text-center align-middle">
<input class="form-check-input" type="checkbox" @click="checkbox($event, question.id)">
</td>
<td width="3%" class="text-center align-middle" v-text="question.id"></td>
<td width="8%" class="text-center align-middle" v-text="question.create"></td>
<td class="float-left align-middle">{{ question.question }} <i class="bi bi-arrow-right"></i></td>
<td class="float-left align-middle" v-text="question.answer[0]"></td>
<td width="1%" class="text-center align-middle" v-text="question.time"></td>
<td width="1%" class="text-center align-middle"> {{ question.money }}</td>
<td width="1%" class="text-center align-middle"> {{ question.rating }}</td>
<td width="8%" class="text-center align-middle">
<nuxt-link :to="`/admin/question/view/${question.id}`" class="btn btn-success btn-sm padingkichkina"><i class="bi bi-eye"></i></nuxt-link>
<nuxt-link :to="`/admin/question/edit/${question.id}`" class="btn btn-primary btn-sm padingkichkina"><i class="bi bi-pencil"></i></nuxt-link>
<a class="btn btn-outline-danger align-middle btn-sm padingkichkina" @click="deleteQuestion(question.id, question.question)"><i class="bi bi-trash"></i></a>
</td>
</tr>
</tbody>
</table>
</div>
<div class="card" v-if="next_page_url !== null">
<button class="btn btn-success" @click="getPaginateTrade">
Yana yuklash
</button>
</div>
</div>
</template>
<script>
import Swal from 'sweetalert2'
export default {
middleware: 'isAdmin',
data() {
return {
questions: [],
success: false,
next_page_url: null,
selected: [],
isCheckAll: false,
}
},
mounted() {
this.$loading.show()
this.getQuestions()
},
methods: {
async getQuestions() {
this.$axios.get('auth/questionsexcel')
.then((res) => {
this.questions = res.data.data.data;
if (res.data.next_page_url !== null) {
this.next_page_url = res.data.data.next_page_url
}
}).catch((error) => {
this.has_error = true
console.log(error.response.data.message)
});
this.$loading.hide();
},
async getPaginateTrade() {
this.$axios.get(`${this.next_page_url}`)
.then((res) => {
if (res.data.next_page_url !== null) {
this.next_page_url = res.data.data.next_page_url
const questions = this.questions;
this.questions = questions.concat(res.data.data.data)
} else {
this.SwalMixin("Boshqa savollar qolmadi", 'error')
}
}).catch((error) => {
this.has_error = true
console.log(error.response.data.message)
});
},
checkbox(event, id) {
this.isCheckAll = !this.isCheckAll;
let array = this.selected;
if (event.target.checked) {
this.selected = array.concat(id);
} else {
this.selected = array.filter(item => item !== id);
}
},
selectAll(bx, event) {
var cbs = document.getElementsByTagName('input'), i = 0;
if (event.target.checked) {
this.selected = this.questions.map(item => item.id);
for (i; i < cbs.length; i++) {
if (cbs[i].type == 'checkbox') {
cbs[i].checked = true;
}
}
} else {
this.selected = [];
for (i; i < cbs.length; i++) {
if (cbs[i].type == 'checkbox') {
cbs[i].checked = false;
}
}
}
},
deleteQuestion(id, name) {
Swal.fire({
title: "O'chirasizmi?",
html: `<b>${name}</b> ni o'chirmoqchimisiz?`,
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: "Ha o'chiraman",
cancelButtonText: "Yo'q hozir emas"
}).then((result) => {
if (result.isConfirmed) {
this.$axios.post('auth/deleteQuestion', {
id: id
}).then((response) => {
this.SwalMixin(response.data.data.message)
this.getQuestions()
}).catch((error) => {
this.SwalMixin(error.response.data.message, 'error')
});
}
})
},
}
}
</script>
- 通过复选框选择形成填充
- jQuery根据相关复选框选择求和单元格
- 根据用户复选框选择显示或隐藏下拉框
- 复选框选择组合
- 如何根据角度中的复选框选择过滤结果
- 根据复选框选择 jQuery 更新文本框
- jquery选择复选框选择的值
- 复选框选择/取消选择触发器第一次工作,但在随后的尝试中失败
- 如何发布单选和复选框选择?表单由php和js处理
- 使用querySelectorAll进行的复选框选择不起作用
- 具有延迟的多个复选框选择以检查其他复选框更改
- 显示 jQuery 复选框选择
- 复选框选择似乎彼此不一致
- 一个变量,多个复选框选择/取消选择 jQuery
- 使用 Json 数据源在数据表中实现复选框选择
- 使用 Javascript 更新复选框选择时的输入字段
- 将复选框选择保留在多页分页中
- 在复选框选择后验证输入类型文本
- 如何根据 Javascript 中的复选框选择打开引导模式窗口
- 如何检测和获取 asp.net 中的复选框/选择框(html 标记)值