-2

asp.netテキストボックスがあり、を使用してテキストボックスのIDを取得します

var tbFilterValueClientID = "<%= tbFilterValue.ClientID %>";

しかし、私がそれを使用しているとき、私はそうします

var tbFilterValue = document.getElementById(tbFilterValueClientID);

その後、次のように実行してその価値を得ることができます。

var filterValue = tbFilterValue.value.toString().trim();

だから誰かが私がする必要がある理由を説明できますか

document.getElementById

とコントロールのパスID?なぜ使えないの?

tbFilterValueClientID

直接?

4

4 に答える 4

0

var "<%= tbFilterValue.ClientID%>"を使用して、オブジェクトではなく文字列を取得しているため

TextBoxの値が必要な場合は、オブジェクトのIDではなくOBJECTが必要です。

オブジェクトを取得するには、そのオブジェクトのクライアントIDが必要です。

そのため、最初にIDを取得してから、そのIDでオブジェクトを取得し、最後にそのオブジェクトからTextBoxの値を取得する必要があります。

クライアントIDはサーバーIDとは異なります。これは、同じサーバーIDを持つコントロール(ネスト)が存在する可能性があるためですが、クライアントIDは常に一意であるため、JavaScriptでは、コントロールを取得するために一意のIDが必要です。

したがって、ClientIdがサーバー側で機能し、getElementByIdがクライアント側で機能することを除いて、ClientIdとdocument.getElementByIdの出力にそのような違いはありません。

于 2012-09-24T07:36:26.453 に答える
0

clientid は、サーバー側で ID tbFilterValue を持つ特定のコントロールのクライアント側 ID のみを提供し、その唯一の属性として ID に対して操作を実行することはできません

コントロールに対して常に操作を実行し、 getelementbyid を呼び出すと、コントロール(要素)が取得されます

于 2012-09-24T07:25:25.983 に答える
0

document.getElementById には、js エンジンが dom オブジェクトを見つけるための ID が必要であることを理解しておいてください。

getElementById に渡される ID は、コントロールの一意の識別子です。

クライアント ID は、サーバー側の asp.net コントロールによってコントロール用に生成された ID です。この ID を getElementById に渡してオブジェクトを取得します。

于 2012-09-24T07:30:03.070 に答える