从asp.net创建和运行客户端脚本

时间:2012-03-11 18:04:12

标签: c# asp.net

我想创建一个像这样的脚本:(下面是尝试)

protected void txtPassword_TextChanged(object sender, EventArgs e)
{
        script  =  "<script type='text/javascript'>";
        script += "function showmsg(){";
        script += "$('#msg').slideDown('normal');";
        script += "$('#msg span').addClass('message');";
        script += "setTimeout('showmsg',100);";
        script += "}";
        script += "</script>";
        ClientScript.RegisterClientScriptBlock(this.GetType(), "ShowMessage",script);
}

我的错误在哪里?为什么没有跑?

5 个答案:

答案 0 :(得分:0)

假设脚本现在是页面的一部分,需要调用函数showmsg()

<script type="text/javascript">
$(function() {
    showmsg();
    });
</script>

因为您使用的是jQuery,所以应该执行showmsg函数中的代码。

答案 1 :(得分:0)

无需在代码中以这种方式注册脚本。您只需使用javascript / jquery检查文本框文本的更改。

由于您使用的是jquery,因此当检测到文本框文本更改中的更改时,change()事件在标准JavaScript中不起作用。

看一下已经回答类似内容的链接。

https://stackoverflow.com/a/1481155/448407

希望这有帮助。

答案 2 :(得分:0)

您无需注册脚本。只需执行此操作即可在客户端处理更改事件:

$(document).ready(function() {
  $('#<%= txtPassword.ClientID %>').change(function() {
     alert('Handler for .change() called.');
  });
});

您使用控件的ClientID属性通过jQuery查找它并订阅更改事件。

希望它有所帮助!

答案 3 :(得分:0)

似乎您正在使用一些jquery标记来应用一些动画,请记住,使用jquery,您必须在操作DOM之前加载Document。

(文档)$。就绪(()的函数 {

//你的脚本

});

答案 4 :(得分:0)

似乎你忘了说你的脚本是一个字符串,它应该这样工作。

 protected void txtPassword_TextChanged(object sender, EventArgs e)
    {
            string script  =  "<script type='text/javascript'>";
            script += "function showmsg(){";
            script += "$('#msg').slideDown('normal');";
            script += "$('#msg span').addClass('message');";
            script += "setTimeout('showmsg',100);";
            script += "}";
            script += "</script>";
            ClientScript.RegisterClientScriptBlock(this.GetType(), "ShowMessage",script);
    }