0

ASP.NET Web アプリに次の Javascript 行があります。

document.getElementById('<%=myTextBox[0].ClientID %>').value = "test";

myTextBox 要素にアクセスするにはどうすればよいですか? たとえば、このサーバー側配列の 5 番目の要素を変更したい、関数にサーバー側パラメーターを渡したいのですが、どうすればよいですか?

例えば:

server side:
ddl.Attributes.Add("onChange", "return OnFoodChange(this,'" + i + "');");


javascript function:
function OnFoodChange(myCmb,myIndex)

を使用document.getElementById('<%=myTextBox[myIndex].ClientID %>').value = "test";するとエラーが発生します。myIndex が定義されていないと表示されます。myIndex はサーバー側のパラメーターのように使用されているためだと思いますが、どうすれば解決できますか?

それは私の完全な JavaScript 関数です:

   function OnFoodChange(myCmb,myIndex) {
               //alert('5');
try{
               var q = document.getElementById('<%= HFFoodPrice.ClientID %>').value.toString();
           var q2 = q.split(';');
           var index = 0;
           //alert(myCmb.selectedIndex.toString());

           //var e = document.getElementById(myCmb);
           var strUser = myCmb.options[myCmb.selectedIndex].value;

           document.getElementById('<%=myTextBox[0].ClientID %>').value = strUser;

           for (var j = 0; j < q2.length; j++) {
               if (q2[j] != '') {
                   var q3 = q2[j].split(',');
                   {

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

2 に答える 2

2

asp.netコントロールIDが期待どおりでない可能性があるため、インデックスを送信する代わりに、テキストボックスのこのコントロールIDを送信します。

コードビハインド

ddl.Attributes.Add("onChange", "return OnFoodChange(this,'" + myTextBox[i].ClientID + "');");

HTMLで

function OnFoodChange(myCmb,myTextBoxId) {
 currentTextBox = document.getElementById(myTextBoxId);
//Your code...
}
于 2012-07-09T06:12:16.787 に答える
1

サーバー側とクライアント側を混在させようとしています。このようには機能しません。サーバー配列をサーバー上のjavascriptに転送する必要があり、クライアント側でそのインデックスにアクセスできるようになります。

于 2012-07-09T06:09:31.547 に答える