javascript - 动态创建的复选框,检查事件监听器
问题描述
我正在显示服务列表。我不知道列表中有多少服务。因此,我为列出的每个服务创建了一个带有复选框的动态列表。如果表单已提交,我知道如何拉取复选框的状态,但在这种情况下,我需要知道是否在未提交表单的情况下选择了框。我看过使用事件侦听器,但不知道如何指向适当的复选框。如何在不提交表单的情况下检查每个复选框的状态?我正在使用值“$J”为每个复选框指定一个唯一的名称。
PHP和HTML:
for ($J = 0; $J < $size; ++$J) {
if ($sp->sosts[$J] == 'A') {
$lbl = $sp->solbl[$J];
echo <<<_END
<form method = 'POST' action = ''>
<div id = 'currentsrv'>
<div class = 'servhdr'>
<input type = 'checkbox' class = 'servcb'
name = "srvcb$J">
<div class = 'servtitle'>
<span id = 'servlbl'> Service : </span>
<span id = 'servnm'> $lbl </span>
</div>
</div>
</div>
</form>
_END;
}
}
解决方案
这是一个向您展示原理的示例。为了方便起见,我使用了 jQuery。
在输出中,true
表示选中,false
表示未选中。
function printCheckboxStates(){
let states = $('input[type=checkbox]').toArray().map(c => c.checked);
let checked = states.filter(checked => checked).length;
console.log(`${checked} checkboxes are checked`, states);
}
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<div>
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
</div>
<button onclick="printCheckboxStates()">
Get checkbox states
</button>
推荐阅读
- python - Python没有将值返回给函数中的变量
- php - 我该如何解决这个问题 页面不工作 HTTP ERROR 500
- android - 防止 ScrollView 中的子项被滚动出屏幕
- c# - 从 C# 控制台应用程序中的 Powershell 脚本读取 json 数据
- c# - Dotnet 核心身份 - 多租户 - 自定义 UserManager - NotSupportedException:未注册名为“默认”的 IUserTwoFactorTokenProvider
- java - OpenGL ES - 管理视频内存
- sql - 蜂巢中的分组/窗口化
- c - 更新 SQLite3 中特定行中的数据
- security - Apache Isis - 安全模块领域
- php - 如何阻止分页超过 laravel 中的页数?