0

ASP.NET Webアプリのテーブル行にテキストボックスとドロップダウンリストを動的に生成しています。javascriptを使用してドロップダウンリストselectedindexに基づいてテキストボックスの値を変更したいのですが、これらの動的に作成されたコントロールをJavascriptに渡す方法がわかりません。働き。

                    TextBox t = new TextBox();
                tc.Controls.Add(t);
                tr.Cells.Add(tc);

                tc = new TableCell();
                DropDownList ddl = new DropDownList();
                ddl.Attributes.Add("onChange", "return OnFoodChange(this," + t + ");");
                tc.Controls.Add(ddl);

コンボボックスの代わりに「this」を渡します。これは正常に機能しますが、次のjavascript関数でテキストボックスが検出されません。

               function OnFoodChange(myCmb,myTxt) {
try{
               var q = document.getElementById('<%= HFFoodPrice.ClientID %>').value.toString();
               var q2 = q.split(';');
               alert(myCmb.selectedIndex.toString());
               alert(document.getElementById(myTxt.value));
               for (var j = 0; j < q2.length; j++) {
                   if (q2[j] != '') {
                       var q3 = q2[j].split(',');
                   {

                   }
               }
           }
           }
           catch(err)
           {
           alert(err.message);
           }
       }

動的に作成されたコントロールをjavascript関数に渡す正しい方法は何ですか?コードビハインドでコントロールIDを設定する必要がありますか?

4

1 に答える 1

1

C#の場合:

ddl.Attributes.Add("onChange", "return OnFoodChange(this," + t.ClientID + ");");

Javascriptで、これを試してください:

alert(document.getElementById(myTxt).value);
于 2012-07-08T11:26:34.087 に答える