Javascript中的DOM更改无法正常工作

时间:2015-01-16 08:58:39

标签: javascript html events dom onchange

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函数,而不是在发生更改时。

2 个答案:

答案 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函数并将返回值指定为输入的更改处理程序,这不是您想要的。