0

jQueryAsp.net ページのスクリプトに問題があります。最初のロード中はうまく機能しますが、ポストバック後は機能しません。最初はスクリプトが再度ロードされないためだと思っていましたが、アラートは、スクリプトpageLoad()の代わりに関数を使用するとスクリプトが実行されることを教えてくれました$(document).ready(function()。スクリプトでは、1 つのテキスト領域から値を読み取り、長さの値を次のテキスト入力に設定します。次のようにスクリプトをページに入れています。

<script type="text/javascript" src="../js/smsanywhere.js"></script>  

ページに直接配置しようとしましたが、違いはないと思います。

スクリプトを以下に示します。

    function pageLoad()
    {
       alert('pageLoad is there');
       var textBox  = "textarea[id*='txtMessage']";
       var counterBox  = "input[id*='txtCharLeft']";

       $(textBox).keydown(function(){ 
          alert(this);
          var length = 70 - $(this).val().length;
          $(counterBox).val(length);
          $(counterBox).attr("style",function(){
             return "width:30px;" + (length < 0 ? "background-color:Red;" : "");
         });
       });
    }

このページでは何も使用しません。ajaxマスター ページ、コンテンツ ページ、およびjQuery.

私は何が欠けていますか?

4

1 に答える 1

2

問題が見つかりました....次のようにjqueryへの参照を追加すると:

HtmlGenericControl myJs = new HtmlGenericControl();
myJs.TagName = "script";
myJs.Attributes.Add("type", "text/javascript");
myJs.Attributes.Add("language", "javascript"); //don't need it usually but for cross browser.
myJs.Attributes.Add("src", ResolveUrl("~/js/jquery/jquery-1.2.6.min.js"));
Page.Header.Controls.Add(myJs);

しかし、私は if (!IsPostBack){ ... } の中に入れたので、....解決策は、この状態からそれを削除して、毎回実行することだけです...フフ。

というわけで謎が解けた…

于 2008-12-09T05:53:15.670 に答える