将ASP.NET客户端ID传递给javascript函数

我需要将一个客户端ID传递给ASP.net控件事件的onblur事件中的Javascript函数,如下所示:

OnBlur="javascript:setBackground(this, '')" 

这是我的Javascript函数:

 function setBackground(sender, controlID) { sender.style.backgroundColor = "#ffffff"; var nextElement = document.getElementById(controlID); if ((nextElement.value == '' || nextElement.value == 'Select') && tab == true) { nextElement.style.backgroundColor = "#f7C059" tab = false; } } 

问题是客户端ID在字面上传递为”而不是实际值。 所以,调用document.getElementById(controlID); 不起作用。

如何获取实际的客户端ID并将其传递给我的Javascript函数?

您可以将asp.net控件更改为标准html元素(即,没有runat =“server”)

   

或者看到这个Stack Overflow答案:

在asp:超链接中分配声明性值的问题。 错误:这不是scriptlet。 将以纯文本格式输出

或者使用jquery

   

这是代码隐藏吗?

OnBlur=String.Format("javascript:setBackground(this, '{0}')", txtClientName.ClientID);

   

从函数传递此对象,可以从将成为ClientID javascript获取this.id