javascript - $.change() 不会检测到所有具有相同名称的输入更改
问题描述
有一个id='from_name'
输入重复相同名称的表单:
<input type="text" name="name[]" class="form-control my-3" value="Name">
我name="name[]
不止一次重复这个名字。
<input type="text" name="name[]" class="form-control my-3" value="Name">
.
.
.
<input type="text" name="name[]" class="form-control my-3" value="Name">
$('#from_name').change
将仅检测具有相同名称的第一个输入的更改,如何检测对具有相同名称的任何输入所做的所有更改name="name[]
name = []:
name = $('[name="device_id[]"]').map(function () {
return $(this).val();
}).get();
该name
数组将仅返回第一个输入值,而不是所有具有相同名称的更改输入。当我仅更改具有相同名称的第二个输入时,name
不会返回任何内容。我错过了什么?
解决方案
您可以使用名称如下的属性选择器input[name="name[]"]
:
$('#from_name input[name="name[]"]').on('input', function(){
//You code here
});
像这样,任何name[]
更改名称的输入都会触发事件。
注意: 我建议使用 ofinput
而不是change
event,因为当您跟踪用户输入时它会更有效。
$('#from_name input[name="name[]"]').on('input', function() {
var names = $('[name="name[]"]').map(function() {
return $(this).val();
}).get();
console.log(names);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id='from_name'>
<input type="text" name="name[]" class="form-control my-3" value="Name">
<input type="text" name="name[]" class="form-control my-3" value="Name">
<input type="text" name="name[]" class="form-control my-3" value="Name">
<input type="text" name="name[]" class="form-control my-3" value="Name">
<input type="text" name="name[]" class="form-control my-3" value="Name">
</form>
推荐阅读
- c++ - Qt QMessageBox摆脱标签左边距
- node.js - 即使我在控制台记录值,反应错误也不是一个功能?
- c++ - 调用 std::call_once 时出现异常
- python - 如何在 Glowscript/VPython 中模拟多个弹丸轨迹?
- html - 如何在引导选项卡上编辑(更改颜色和边框像素)?
- python - 如何在 replit 上使用 tensorflow?
- haskell - 如何使用 Haskell 从 Internet 下载文件?
- java - 在进行 Rest 调用时,获取比较方法违反了其一般合同异常
- php - 带有 Laravel 的 ipay88(支付网关)
- javascript - 当 Material UI Slider 组件被包装返回时,用 JSX 编写时不能顺利工作