【问题标题】:Getting undefined string constraint error in Javascript在Javascript中获取未定义的字符串约束错误
【发布时间】:2011-06-22 12:29:39
【问题描述】:

我想传递一个 Javascript 变量作为在复选框的onclick 事件上调用的函数的参数,并且该复选框是在 innerHTML 中创建的。 代码sn-p是:

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() 的参数。我得到了错误:

“未确定的字符串约束”。

但是,如果我对值进行硬编码,则函数运行良好。 对此有何建议?

【问题讨论】:

  • 你传递的结果是什么?

标签: javascript html dom-events innerhtml


【解决方案1】:

只是初学者

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 = '&lt;input type="checkbox" name="pCheckBox" value="111" id ="' + code + '" onClick="decide(this.id)"&gt;';

默认对齐是左对齐,你在单元格上对齐中心所以摆脱

// tr.setAttribute("align", "left");

您能否发布更多代码并准确说明问题出在哪里?

【讨论】:

  • @mplungjan-onClick="decide(this.id)">' 工作......现在代码运行良好......thanz 很多......这个错误让我发疯了...... .thanq 再次。
  • @Kaustav - 很棒的是how to accept the answer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
相关资源
最近更新 更多