如何使用eventlistener在javascript中添加多个id?
我有一张表格,上面有姓名、姓氏、电话和其他字段。所有字段都有唯一的id和名称。 现在我有了这个代码,用于在字段中禁用类型英语,并提醒用户更改键盘。但是我不能给这个添加多个id 示例:我有两个id为>#name和#phone的字段。我想调用此ID,如: document.getElementById('name phone') 但上面的代码不工作,并显示“无法读取属性addEventListener” 我的代码:如何使用eventlistener在javascript中添加多个id?,javascript,addeventlistener,getelementbyid,getelementsbyname,Javascript,Addeventlistener,Getelementbyid,Getelementsbyname,我有一张表格,上面有姓名、姓氏、电话和其他字段。所有字段都有唯一的id和名称。 现在我有了这个代码,用于在字段中禁用类型英语,并提醒用户更改键盘。但是我不能给这个添加多个id 示例:我有两个id为>#name和#phone的字段。我想调用此ID,如: document.getElementById('name phone') 但上面的代码不工作,并显示“无法读取属性addEventListener” 我的代码: document.getElementById('name').addEventL
document.getElementById('name').addEventListener('keypress',函数(e){
如果((e.charCode>=97&&e.charCode=65&&e.charCode使用querySelectorAll
,forEach
添加事件
document.querySelectorAll(#name,#inputLastName,#phone”).forEach((ele)=>{
ele.addEventListener(“按键”,功能(e){
如果(
(e.charCode>=97&&e.charCode=65&&e.charCode你对事物的运行方式做出了一些错误的假设
首先,getElementById()
按照tin上的说明执行操作-它获取一个元素(单数),而不是节点列表。它不接受多个ID,只接受一个ID。这就是为什么:
document.getElementById('name phone')
或任何其他指定多个ID的方法将导致该方法返回null。您需要:
document.querySelectorAll('#name, #phone')
但是,它返回一个nodelist,addEventListener()
是HTML元素对象的一个方法,而不是nodelist对象,因此不能在那里运行它并期望它将事件绑定到所有返回的元素
您有两个选择:
1迭代nodelist并将事件绑定到每个元素
2使用
给元素一个类,然后使用getElementsByClassName
并在每个元素上循环,为每个元素添加事件侦听器
document.addEventListener('keypress', function(e) {
if (!e.target.matches('#name, #phone')) return;
//your code here
});