【问题标题】:jquery script not working after postback even with pageLoad即使使用pageLoad,jquery脚本在回发后也不起作用
【发布时间】:2008-12-09 04:44:03
【问题描述】:

我的 Asp.net 页面上的 jQuery 脚本遇到了一些问题。在第一次加载期间它运行良好,在回发后它不会。最初我认为这是因为脚本没有再次加载,但警报告诉我脚本在我使用函数 pageLoad() 而不是 $(document).ready(function() 时运行。 在脚本中,我只是从一个文本区域读取值并将长度值设置为下一个文本输入。我将脚本放入这样的页面:

<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

我错过了什么?

【问题讨论】:

    标签: jquery asp.net-2.0 postback


    【解决方案1】:

    我发现了问题......当我像这样添加对 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。

    谜团终于解开了……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 2021-07-02
      相关资源
      最近更新 更多