var nameInput = document.createElement("input");
nameInput.type = "text";
nameInput.className = "loop_input";
nameInput.id = "nameAddress"+validLoadedEmails;
nameInput.value = data[0];
nameInput.onchange = editAddressHidden(validLoadedEmails);
似乎在创建元素时。它已经转到editAddressHidden函数,而不是在发生更改时。
答案 0 :(得分:1)
鉴于您当前的代码:
nameInput.onchange = editAddressHidden(validLoadedEmails);
您可以将此视为"使用onchange
函数"中返回的任何内容处理nameInput
editAddressHidden
事件。但这不正确(在本例中),因为您希望使用onchange
函数本身处理editAddressHidden
事件。
所以将它包装在一个匿名函数中:
nameInput.onchange = function(){ editAddressHidden(validLoadedEmails) };
现在每次onchange
事件触发时,它都会调用您的函数,然后调用editAddressHidden
函数。
答案 1 :(得分:0)
使用此
nameInput.onchange = function(){ editAddressHidden(validLoadedEmails) };
因为您调用editAddressHidden
函数并将返回值指定为输入的更改处理程序,这不是您想要的。