我有一段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'未定义!
非常感谢任何帮助。
马特
答案 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,然后这将引用您之后的控件。