6

ページに次の JScript があります

<script type="text/javascript">
    function ProcessButtonDisable() {
        var button = $find("<%=ProcessButton.ClientID %>");
        button.disabled = true;
            }
</script>

以降

<asp:Button ID="ProcessButton" Text="Process All" runat="server" OnClick="Process_Click" OnClientClick="ProcessButtonDisable()" />

ページを実行してボタンを発射すると、

Microsoft JScript ランタイム エラー: プロパティ 'disabled' の値を設定できません: オブジェクトが null または未定義です

そして動的ページはそれを次のように変換しました:

<script type="text/javascript">
    function ProcessButtonDisable() {
        var button = $find("ctl00_ctl00_BodyContentPlaceHolder_MainContentPlaceHolder_ProcessButton");
        button.disabled = true;
    }
</script>

<input type="submit" name="ctl00$ctl00$BodyContentPlaceHolder$MainContentPlaceHolder$ProcessButton" value="Process All" onclick="ProcessButtonDisable();" id="ctl00_ctl00_BodyContentPlaceHolder_MainContentPlaceHolder_ProcessButton" />

コントロールが明確に定義されており、クライアント ID が正しい ID を返しているように見えるため、何が問題なのかわかりません

何か助けはありますか?

psコードからこれが明確でない場合、これの目的は、最初のクリック後にページがリロードされる前に、ユーザーがクリックしてリクエストを再送信するのを防ぐことです

4

6 に答える 6

13

JQueryを想定するための以前のすべての回答に-1。$find は、Microsoft AJAX ライブラリによって定義された関数です。「addComponent メソッドを介してアプリケーションに登録された Component オブジェクトへの参照」を取得する「Sys.Application クラスの findComponent メソッドへのショートカットを提供します」。代わりに、「Sys.UI.DomElement クラスの getElementById メソッドへのショートカットを提供する」$get()を使用してみてください。

このページでは、両方の関数について詳しく説明します。 非常に便利な $get および $find ASP.NET AJAX ショートカット関数

于 2013-11-21T16:09:36.873 に答える
-3

disabledjQuery オブジェクトのプロパティではなく、DOM 要素のプロパティです。次のいずれかを使用してみてください。

$('selector').get(0).disabled = true

、 また

$('selector').attr('disabled','disabled');
于 2013-09-09T14:53:40.813 に答える