调用多个函数在同一页面上生成文本框

时间:2013-11-18 15:15:13

标签: javascript jquery

我调用两个单独的函数来生成动态文本框,其中一个函数正常工作,而其他函数不起作用,尽管生成文本框的代码除变量名称和标签名称外是相同的。任何人都可以让我知道我做错了什么,我怎么能弄清楚这个?

这是无效的功能。

           var C = 3;
       var matrixArray = ["question", "mrank"];

       $("#addMatrix").click(function () {
         for(var j = 0; j < matrixArray.length; j++){
            createMatrixInput(MatrixArray[j]);
         }
         C++;
       });
function createMatrixInput(l){
            var tb_Div = $('#TextBoxes');
            var mstr = '<div class="control-group">';
            mstr += '<label class="control-label">' + l + " " + C + '</label>';
            mstr += '<div class="controls">';
            mstr += '<input type="text" id="' + l + '_' + C + '" name="'+ l +'_' + C + '" />';
            mstr += '</div>';
            mstr += '</div>';
            tb_Div.append(mstr);
        };

这是我的完整代码的jsfiddle。

http://jsfiddle.net/qqqyC/2/

2 个答案:

答案 0 :(得分:1)

我在JSFiddle中发现了一个错误,看到按钮的ID“矩阵按钮”它是addmatrix,您将onClick事件绑定到addMatrixID的javascript事件绑定区分大小写,因此事件不会绑定。

也许这会解决您的整个问题,因为它阻止了执行点击事件。

答案 1 :(得分:1)

有两个问题。按钮id是addmatrix,数组是matrixArray,而不是MatrixArray。该方法应如下所示:

$("#addmatrix").click(function () {
    for(var j = 0; j < matrixArray.length; j++){
        createMatrixInput(matrixArray[j]);
        C++;
    }
});