javascript中的createElement设置“onchange”属性

时间:2013-03-11 14:48:08

标签: javascript html html5

我正在尝试使用“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都不适合我。有没有办法让这项工作或解决方法?

1 个答案:

答案 0 :(得分:7)

在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, ...);
};

或者,如果您需要输入本身的信息,可以在this函数中使用validation关键字:

el.onchange = validation;

....

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

}