即使使用pageLoad,jquery脚本在回发后也无法正常工作

时间:2008-12-09 04:44:03

标签: jquery asp.net-2.0 postback

我在Asp.net页面上遇到了一些JQuery脚本问题。在第一次加载时它运行良好,在回发之后它没有。 Initiali我认为这是因为脚本没有再次加载,但是警告告诉我脚本运行时因为我使用函数pageLoad()而不是$(document).ready(function()。 在脚本中,我只读取一个textarea的值,并将lenght值设置为下一个文本输入。我把脚本放到这样的页面中:
  < 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。

我错过了什么......

1 个答案:

答案 0 :(得分: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){...}里面,所以我......解决方案只是将它从这种情况中移除并且每次都运行它... uff。

如此神秘地整理出来......