简体   繁体   English

Select事件侦听器在forEach循环中不起作用

[英]Select event listener doesn't work inside a forEach loop

Select event listener doesn't work inside a forEach loop. Select事件侦听器在forEach循环中不起作用。

This is for input styling when a user selected a value a input tag would be disable. 当用户选择一个值时,这将用于输入样式,输入标签将被禁用。

 var listOfSelect = document.querySelectorAll('select');
  var listOfInput = document.querySelectorAll('input');

  listOfSelect.forEach(function(element) {
    element.addEventListener('focus', function () {
      element.style.backgroundColor = "white";
    });
    element.addEventListener('blur', function () {
      element.style.backgroundColor = "#F0F0E7";
    });
    element.addEventListener('select', function () {
      console.log("OK")
    });
  });

I expect select event would work inside that loop. 我希望select事件可以在该循环内工作。

Since you're working with a select element, perhaps you intended to use the change event ? 由于您正在使用select元素,也许您打算使用change事件 The select event is for selecting text in a text input. select事件用于在文本输入中选择文本。

If you did mean to use the select event, then you probably want to iterate over the array of input elements rather than the array of select elements. 如果确实要使用select事件,那么您可能要遍历输入元素的数组而不是选择元素的数组。

Try using change event: 尝试使用更改事件:

 var listOfSelect = document.querySelectorAll('select'); var listOfInput = document.querySelectorAll('input'); listOfSelect.forEach(function(element) { console.log(element); $(document).on('change', element, function() { element.style.backgroundColor = "blue"; }); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select> <option value=''>--select--</option> <option value='1'>1</option> <option value='2'>3</option> <option value='3'>3</option> </select> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM