2011-06-22 5 views
1

JavaScriptの変数をチェックボックスのonclickイベントで呼び出された関数の引数として渡したいとします。 innerHTMLにチェックボックスが作成されます。これを実行している間JavaScriptで定義されていない文字列制約エラーを取得する

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を設定するも機能(決定の引数を渡すことができるよ - コードスニペットではありません。私はエラー "不定の文字列制約"を取得します。しかし、私は値をハードコードする場合、関数は正常に動作します。 これに関するご提案はありますか?ただ、初心者のための

+0

結果として何を渡していますか? – Mayo

答えて

0

スプリットは、配列を作成します。あなたは、アレイ

if (valueSet.length <= 3) return 
for (var i = 1; i < valueSet.length - 3; i++) { 

で少なくとも4つの項目、あなたの文字列が、とにかく

var code = valueSet[i - 1];

文字列を連結する際に文字列を作成する必要はありませんがあるかどうかをテストする必要があります

var valueSet = Result.split("##");

を使用する必要はありません。javascript:接頭辞は不要ですSS、それはIDと同じですコード:

また

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

デフォルト整列が残っていると、あなたはより多くを投稿することができますので、

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

を取り除くセル上に中心を合わせます物事が正確に間違っている場所を教えてください。

+0

mplungjan- のonClick = "決める(this.id)" @>」 は今のコードがたくさんthanz ....素敵取り組んでいる....働いていた。.. このエラーはナット私を運転した... thanqもう一度。 – Kaustav

+0

@Kaustav - ここでは、[回答を受け入れる方法]です(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – mplungjan

関連する問題