javascript - javascript中的createElement设置 "onchange"属性

标签 javascript html

我正在尝试使用“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 两者都不适合我。有没有办法使这项工作或变通办法?

最佳答案

在 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;

}

关于javascript - javascript中的createElement设置 "onchange"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15341512/

相关文章:

javascript - 如何使用 JavaScript 选择多个类之一?

javascript - 带有流畅背景图像的光滑 slider 空白空间

javascript - 如何从 JSON 对象解析 HTML 标签

javascript - 水平滚动 div CSS 中的 float 可见 div

javascript - 创建一个类似于beforeUnload的JavaScript函数,该函数在单击链接以显示自定义确认对话框时触发

javascript - 如果没有 "function"关键字,这个对象方法定义如何工作?

javascript - 将值发送到 Angular 中的嵌套元素

JavaScript 注释

javascript - Jquery attr改变html结构

html - 在打印页面时不显示选择框只显示选择框的元素