javascript - 如何在字段更新时选中复选框

标签 javascript jquery checkbox input

我正在制作一个包含 10 个字段和 10 个复选框的表单。在更新字段时,我希望选中相关的复选框。我可以通过编写 10 个不同的 ON 更改函数来使其工作,但我正在寻找一种智能方法来实现它,而不是为各个字段编写 10 个不同的 ON 更改函数。

<input value="1" name="checkbox-1" id="checkbox-1" type="checkbox"/>
<label for="checkbox-1"></label>
<input type="text" value="" id="field-1" name="field-1">
<label class="form-label">Field 1</label>

<input value="1" name="checkbox-2" id="checkbox-2" type="checkbox"/>
<label for="checkbox-2"></label>
<input type="text" value="" id="field-2" name="field-2">
<label class="form-label">Field 2</label>

<input value="1" name="checkbox-3" id="checkbox-3" type="checkbox"/>
<label for="checkbox-3"></label>
<input type="text" value="" id="field-3" name="field-3">
<label class="form-label">Field 3</label>

$('#field-1').bind('change', () => {
    $('#checkbox-1').prop('checked', true);
});

$('#field-2').bind('change', () => {
    $('#checkbox-2').prop('checked', true);
});

$('#field-3').bind('change', () => {
    $('#checkbox-3').prop('checked', true);
});                                                 

最佳答案

我建议您使用starts-with选择器来查找所有字段并绑定(bind)输入处理程序。然后,当您能够处理它时,您必须找到适当的复选框并选中它:

$('input[name^="field-"]').on('input', function(){
	let fieldId = $(this).attr('name').slice(-1);
	$('#checkbox-'+fieldId).prop('checked', true);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input value="1" name="checkbox-1" id="checkbox-1" type="checkbox"/>
<label for="checkbox-1"></label>
<input type="text" value="" id="field-1" name="field-1">
<label class="form-label">Field 1</label>

<input value="1" name="checkbox-2" id="checkbox-2" type="checkbox"/>
<label for="checkbox-2"></label>
<input type="text" value="" id="field-2" name="field-2">
<label class="form-label">Field 2</label>

<input value="1" name="checkbox-3" id="checkbox-3" type="checkbox"/>
<label for="checkbox-3"></label>
<input type="text" value="" id="field-3" name="field-3">
<label class="form-label">Field 3</label>

关于javascript - 如何在字段更新时选中复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57252096/

相关文章:

javascript - 使用 Google Map API V3 时不显示 GeoJSON 点名称和描述

javascript - 过滤器的多个值

Javascript 字符串和字符比较

html - 如何使用 css 将复选框的位置设置为 td 和输入类型文本的中间?

html - 消除默认的 HTML 复选框,用 CSS 代替

javascript - 选中状态上的复选框更改标题文本

javascript - 当 div 具有绝对定位的子 div 时,获取 div 的 "scrollWidth"

javascript - 解析通过ajax返回的多个json列表

javascript - 基于窗口大小的工具提示定位

css - 选中时复选框的交叉标签