动态添加文本框并通过函数分配其值

时间:2018-12-23 12:19:09

标签: javascript

我想根据用户输入动态创建n个文本框。 每个文本框必须填充一个序列号。在这里,我到目前为止已经尝试过了。

function generateSerial(sender,eventArgs){
        debugger;
        //var rw_Serail = stockin.rw_Serail;
        if(eventArgs.get_newValue()!="0"){
            if(eventArgs.get_newValue()!=eventArgs.get_oldValue()){
                create(eventArgs.get_newValue());
                //OpenWindow(null,null,"rw_Serial");
            }
        }
    }

创建将调用一个函数,其作用是创建文本框并分配一个值。

function create(param) {
        debugger;
        var s= "";
        for(var i = 0; i < param; i++) {
            s+= `<input type="text" style="width:72%" name="txtSerial" value=${generateLicense()}>`
                   `<button type="button" style="margin-left: 5px;height: 24px;">Change</button>`; //Create one textbox as HTML
        }
        document.getElementById("dvserialNo").innerHTML=s;
    }

顾名思义,generateLicense()将返回一个序列号。

function generateLicense() {
   return "abcd1234Etc..";
}

现在,在运行此代码时,出现此错误。

在Chrome浏览器中

  

未捕获的TypeError:generateLicense(...)不是函数

在Firefox中

TypeError: (("<input type=\"text\" style=\"width:72%\" name=\"txtSerial\" value=" + (intermediate value)) + ">") is not a function

注意:我想同时创建和分配它的值。 enter image description here

1 个答案:

答案 0 :(得分:2)

串联s+中的两个元素。当然,建议的答案之一包括value="${generateLicense()}"

的引号
s+= `<input type="text" style="width:72%" name="txtSerial" value="${generateLicense()}">`
 + `<button type="button" style="margin-left: 5px;height: 24px;">Change</button>`; //Create one textbox as HTML