2013-03-11 47 views
2

我试图动态地添加新的输入费尔德用“的onchange”属性:的createElement在JavaScript设置“的onchange”属性

var f = document.getElementById("dN[" + fieldsd + "]"); // create/insert new 
    el = document.createElement("input"); 
    el = f.appendChild(el); 
    el.name = "dName[" + fieldsd + "]"; 
    el.id = "dName[" + fieldsd + "]"; 
    el.onchange = "validation()"; 

我也曾尝试的setAttribute都没有为我工作。有没有办法让这项工作或解决办法?

回答

3

在JavaScript中,设置onchange属性是指向一个功能,而不是实际的字符串:

var f = document.getElementById("dN[" + fieldsd + "]"); // create/insert new 
el = document.createElement("input"); 
el = f.appendChild(el); 
el.name = "dName[" + fieldsd + "]"; 
el.id = "dName[" + fieldsd + "]"; 
el.onchange = validation; 

(如果你有一个函数名为validation

如果你需要传递参数设置onchange来调用验证功能的功能:如果你想要的信息

el.onchange = function() { 
    validation(param1, param2, ...); 
}; 

或者,从输入本身,您可以在validation函数中使用关键字this

el.onchange = validation; 

.... 

function validation() { 
    // this is the "context" for the function. In this case 
    // the element that changed. 
    var value = this.value; 

} 
+0

好这个工程非常感谢!我仍然需要将信息传递给onchange的问题呢?我该怎么做...... – user1647308 2013-03-11 15:19:38

+0

@ user1647308,请参阅编辑。 – 2013-03-11 15:41:15