设置生成的HTML文本字段的{on_}事件

时间:2017-05-10 11:31:40

标签: javascript function parameters onclick

我正在尝试为文本字段生成HTML代码字符串。问题是我无法在生成的HTML文本字段中使用onchange事件。

我的HTML页面中的脚本如下:

function validateSC1(){
  //check something
}

var myStepContent = new StepContent("sc1", "First Name", inputType.Text, true, validateSC1);
document.getElementById("loc").innerHTML = myStepContent.generateCode().getCode();

validateSC1函数应该是要生成的文本字段的onchange事件。

现在StepContent函数如下:

function StepContent(id, label, type, mandatory, validation){
    this.init = function(){
        this.id = id;
        this.label = label;
        this.type = type;
        this.mandatory = mandatory;
        this.validation = validation;
        this.output = "";
    }

    this.generateCode = function(){
        if(this.type == inputType.Text){
            this.output += this.label + ": <br><input id='" + this.id + "' type='text' onclick='" + this.validation + "'><br>";
        }
        return this;
    }

    this.getCode = function(){
        return this.output;
    }

    this.init();
}

即使工作,我也无法获得改变。我甚至将它更改为onclick事件以查看它是否有效。任何人都可以建议或告诉我我做错了什么?

注意:我想在生成的HTML代码呈现到页面之前分配onchange事件,因此我不能将addEventListener用于生成的文本字段。

2 个答案:

答案 0 :(得分:0)

使用jQuery在动态加载的html上使用$(document).on语法

供变更使用

$(document).on('change', '#element_id', function() {
    //your code
});

同样适用于任何类型的事件,并且可以在内容甚至存在之前分配,因为每次触发事件时它都会检查DOM是否匹配元素。

答案 1 :(得分:0)

您的onclick事件没有parens。 您还可以使用我认为惯例的单引号和双引号。 我会在Firebug中检查你的对象。