我想传递一个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,也无法传递函数 decide()
的参数。我收到错误:
"undetermined string constraint".
但是如果我对这些值进行硬编码,该函数就可以正常运行。 对此有何建议?
最佳答案
仅供初学者使用
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");
您可以发布更多代码并准确说明哪里出了问题吗?
关于javascript - 在 Javascript 中出现未定义的字符串约束错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439837/