将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