我想传递一个javascript变量作为一个函数的参数,该函数在一个复选框的onclick事件上调用。并在innerHTML中创建复选框。 代码段是 -
function populateValue(Result) {
var valueSet = new Array();
valueSet = Result.split("##");
for (i = 1; i < valueSet.length - 3; i++) {
var tr = document.createElement("tr");
var td = document.createElement("td");
tr.setAttribute("align", "left");
tr.className = "table_ce11";
td.setAttribute("align", "center");
var code = String(valueSet[i - 1]);
td.innerHTML = "<input type='checkbox' name='pCheckBox' value='111' id ='" + code + "' onClick=\"javascript:decide('" + code + "')\">";
tr.appendChild(td);
}
}
function decide(code) {
alert("here");
alert(document.getElementById(code).value);
if (document.getElementById(code).checked) alert("chked");
else alert("unchked");
}
在运行它时,既不能设置id也不能传递函数decision()的参数。我得到错误“未确定的字符串约束”。但如果我硬编码值,函数运行正常。 对此有何建议?
答案 0 :(得分:0)
仅限初学者
Split会创建一个数组。
var valueSet = Result.split("##");
您需要测试数组中是否至少有4个项目
if (valueSet.length <= 3) return
for (var i = 1; i < valueSet.length - 3; i++) {
无论如何,无需在字符串连接字符串时创建字符串
var code = valueSet[i - 1];
无需使用 javascript:前缀,并且在与ID相同时无需传递代码:
td.innerHTML = '<input type="checkbox" name="pCheckBox" value="111" id ="' + code + '" onClick="decide(this.id)">';
还会保留默认对齐,并在单元格上对齐中心,以便摆脱
// tr.setAttribute("align", "left");
你可以发布更多的代码并准确地告诉出错的地方吗?