получение неопределенной ошибки ограничения строки в javascript - PullRequest
1 голос
/ 22 июня 2011

Я хочу передать переменную 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");
}

, при этом он не может ни установить идентификатор, ни передать аргумент функции решить ().Я получаю ошибку «неопределенное ограничение строки».но если я жестко закодировал значения, функция работает нормально.Есть предложения по этому поводу?

1 Ответ

0 голосов
/ 22 июня 2011

Только для начала

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: и не нужно передавать код, если он совпадает с идентификатором:

td.innerHTML = '<input type="checkbox" name="pCheckBox" value="111" id ="' + code + '" onClick="decide(this.id)">';

Также выравнивание по умолчанию оставлено, и вы выравниваете центр по ячейке, чтобы избавиться от

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

Можете ли вы опубликовать больше кода и сказать, где все идет не так?

...