Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用eventlistener在javascript中添加多个id?_Javascript_Addeventlistener_Getelementbyid_Getelementsbyname - Fatal编程技术网

如何使用eventlistener在javascript中添加多个id?

如何使用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

我有一张表格,上面有姓名、姓氏、电话和其他字段。所有字段都有唯一的id和名称。 现在我有了这个代码,用于在字段中禁用类型英语,并提醒用户更改键盘。但是我不能给这个添加多个id

示例:我有两个id为>#name和#phone的字段。我想调用此ID,如: document.getElementById('name phone') 但上面的代码不工作,并显示“无法读取属性addEventListener”

我的代码:

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
});