javascript - 追加后如何增加复选框ID - JQuery
问题描述
我有一个默认的复选框,其他复选框将在我单击添加按钮后出现。我需要检查是否选中了复选框。但这里的问题是我的 jquery 仅适用于默认复选框。代码如下:
HTML:
<form_answer>
<input type="hidden" class ="" id="correct_hidden" name="correct_hidden[][correct]" value="0"/>
<input type="checkbox" class ="" id="correct" name="correct[][correct]"/>
<button class="" id = "btn_add"> Add</button>
</form_answer>
JS:
<script>
$(document).ready(function(){
$('#btn_add').click(function(){
add_row();
});
});
function add_row(){
var id = $("#row").val();
id++;
var html = '<div class=""> ' +
'<input type="hidden" class ="" id="correct_hidden" name="correct_hidden[][correct]" value="0"/> ' +
'<input type="checkbox" class ="" id="correct" name="correct[][correct]"/>' +
'</div>' ;
$("form_answer").append(html);
$("#row").val(id);
}
$(document).ready(function(){
$("#correct").click(function () {
if ($(this).prop("checked")) {
$("#correct_hidden").val("1");
}else{
$("#correct_hidden").val("0");
}
});
});
</script>
上面的脚本仅适用于默认复选框。我需要脚本来处理所有新的附加复选框。我该如何解决这个问题?
解决方案
Id 在 Html 中应该是唯一的。所以把它改成一个类。此外,您正在向 DOM 添加新元素。所以你应该在文档而不是元素本身上添加一个事件监听器。
删除 id 并将其放在类中:
<input type="checkbox" class ="correct" id="" name="correct[][correct]"/>
然后更改您的 js,使其不添加 id
var html = '<div class=""> ' +
'<input type="hidden" class ="correct_hidden" id="" name="correct_hidden[][correct]" value="0"/> ' +
'<input type="checkbox" class ="correct" id="" name="correct[][correct]"/>' +
'</div>' ;
最后将事件监听器更改为文档并在此类上触发它
$(document).on('click', '.correct', function () {
if ($(this).prop("checked")) {
$("#correct_hidden").val("1");
}else{
$("#correct_hidden").val("0");
}
});
推荐阅读
- oauth-2.0 - 我在哪里可以在门户中获取我的 Azure AD B2C 颁发者 URL
- javascript - 当输入在页面加载或用户更改时具有值时更新 Alpinejs x-data
- r - 当 rmarkdown 符合时,R 包可用选项卡会显示
- javascript - React、useEffect 清理不适用于 removeEventListener、useRef、视差效果
- parsing - 如何使用 ANTLR 逐个解析输入?
- visual-studio-code - 在 Visual Studio 代码中禁用 .ejs 文件的 onsave 格式
- python - 分别对每一行应用一个函数
- css - 将多层背景与单独的蒙版结合起来
- python-3.x - 使用python检测输入数据的数据类型时,如何使用嵌套的if-else进行这项工作
- math - 如果我在一个网页中有 640 个输入过滤器,我可以拥有的过滤器组合的最大数量是多少?