我调用两个单独的函数来生成动态文本框,其中一个函数正常工作,而其他函数不起作用,尽管生成文本框的代码除变量名称和标签名称外是相同的。任何人都可以让我知道我做错了什么,我怎么能弄清楚这个?
这是无效的功能。
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。
答案 0 :(得分:1)
我在JSFiddle
中发现了一个错误,看到按钮的ID“矩阵按钮”它是addmatrix
,您将onClick
事件绑定到addMatrix
和ID
的javascript事件绑定区分大小写,因此事件不会绑定。
也许这会解决您的整个问题,因为它阻止了执行点击事件。
答案 1 :(得分:1)
有两个问题。按钮id是addmatrix,数组是matrixArray,而不是MatrixArray。该方法应如下所示:
$("#addmatrix").click(function () {
for(var j = 0; j < matrixArray.length; j++){
createMatrixInput(matrixArray[j]);
C++;
}
});