更改元素';在javascript中使用变量的oninput事件?

更改元素';在javascript中使用变量的oninput事件?,javascript,html,Javascript,Html,我想将输入字段的oninput事件更改为变量中指定的输入事件 现在,我有 var input = document.createElement('input'); var tofunction = "alert('test');"; input.oninput = function oninput(event) { tofunction }; document.getElementById('div').append(input); 当在文本框中输入时,什么也不会发生,但是如果我在没有变量的情

我想将输入字段的oninput事件更改为变量中指定的输入事件

现在,我有

var input = document.createElement('input');
var tofunction = "alert('test');";
input.oninput = function oninput(event) { tofunction };
document.getElementById('div').append(input);
当在文本框中输入时,什么也不会发生,但是如果我在没有变量的情况下手动设置它,它将执行定义的函数

var input = document.createElement('input');
input.oninput = function oninput(event) { alert('test'); };
document.getElementById('div').append(input);

因为带引号的“警报('test');”不是函数,它只是一个字符串。您可以执行
var-tofunction=function(){alert('test');}
。现在您有了一个名为
tofunction
的函数,该函数在调用时将发出警报。如果你想在输入时发生这种情况,请尝试
input.oninput=tofunction
@JaredSmith…如果你稍微解释一下你为什么这么说,也许他会相信你。总是有
eval()
,但请注意它离
evil
。@NathanMetzger注意,Jared试图警告你不要那样做。很少有理由将字符串转换为可执行代码。如果该字符串来自用户,则绝对不应该这样做。请考虑扩大你的问题,解释你为什么要在实现它之前,为了你自己。@ TylerRoper,如果我认为我可以在评论的空间里解释这个请求所涉及的一切,我会的。如果我认为我能在回答的空间里回答这个问题(解释所有的问题),我也会这样做。你做了正确的事情,要求更多的信息,希望缩小范围。