我在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。
我错过了什么......
答案 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。
如此神秘地整理出来......