母版页上的Javascript问题

时间:2009-07-22 22:41:03

标签: c# javascript master-pages

我有一段JavaScript可以清除文本框中的数据。代码在独立页面上工作正常,但在母版页上它无法正常工作。

在默认页面上,我的JavaScript是:

    <script type="text/javascript">

    function doClear(searchBox) {
        if (searchBox.value == searchBox.defaultValue) {
            searchBox.value = ""
        }
    }

</script>

我正在做的是附加OnClick属性:

protected void Page_Load(object sender, EventArgs e)
{
    TextBox1.Attributes.Add("onclick", "doClear(searchBox);");
}

错误是'searchBox'未定义!

非常感谢任何帮助。

马特

3 个答案:

答案 0 :(得分:3)

你必须做类似的事情,

protected void Page_Load(object sender, EventArgs e)
{
    TextBox1.Attributes.Add("onclick", "doClear('" + TextBox1.ClientId + "');");
}

使用母版页时,ASP.NET可能会更改HTML元素的客户端ID,以确保它们是唯一的。请参阅http://odetocode.com/Articles/450.aspx,查看名为“名字管理”的部分。

答案 1 :(得分:0)

ASP.NET页面会改变您的元素ID。我没有调用doClear(searchBox),而是更改了函数,因此需要一个HTML元素并调用doClear(this);

答案 2 :(得分:0)

为什么不查看您的网页来源?它毕竟是javascript可以访问的所有内容。你看到'searchBox'了吗?您必须查找Textbox1.ClientId,然后这将引用您之后的控件。