Скрипт jquery не работает после обратной передачи даже с pageLoad - PullRequest
0 голосов
/ 09 декабря 2008

У меня возникли проблемы со скриптом JQuery на моей странице Asp.net. Во время первой загрузки он работает хорошо, после обратной передачи - нет. Изначально я думал, что это потому, что скрипт не загружается снова, но оповещение подсказало мне, что скрипт запускается, поскольку я использую функцию pageLoad () вместо $ (document) .ready (function ()). В скрипте я просто читаю значение из одного текстового поля и устанавливаю значение длины для следующего ввода текста. Я помещаю скрипт на страницу так:

Я пытался разместить прямо на странице, но я думаю, что нет никакой разницы.

Сценарий показан ниже.

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 Ответ

2 голосов
/ 09 декабря 2008

Я нашел проблему .... как я добавляю ссылку на 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.

Так что тайна разобралась ...

...