如何解决将ASP.NET客户端ID传递到javascript函数中
|| 我需要在这样的ASP.net控件事件的onblur事件中将客户端ID传递给Javascript函数:OnBlur=\"javascript:setBackground(this,\'<%= txtClientName.ClientID %>\')\"
这是我的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的字面传递为\'<%= txtClientName.ClientID%> \',而不是实际值。因此,调用document.getElementById(controlID);不起作用。
如何获取实际的客户端ID并将其传递给Javascript函数?
解决方法
您可以将asp.net控件更改为标准html元素(即,不使用runat = \“ server \”)
<asp:TextBox ID=\"TextBox1\" runat=\"server\"></asp:TextBox>
<input type=\"text\" id=\"ClientText1\" onblur=\"javascript:alert(\'<%= TextBox1.ClientID %>\')\" />
或查看此堆栈溢出答案:
在asp:hyperlink中分配声明性值时出现问题。错误:这不是scriptlet。将输出为纯文本
或使用jQuery
<script type=\"text/javascript\" src=\"//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js\"> </script>
<script type=\"text/javascript\">
$(document).ready(function () {
$(\"#text2\").blur(function(){alert(\'<%= TextBox1.ClientID %>\')});
});
</script>
, 这是背后的代码吗?
OnBlur=String.Format(\"javascript:setBackground(this,\'{0}\')\",txtClientName.ClientID);
怎么样
, <asp:TextBox ID=\"TextBox1\" runat=\"server\" onclick=\"dosomething(this)\"></asp:TextBox>
<script>
function dosomething(obj)
{
var txtObj= document.getElementById(obj.id);
alert (txtObj);
}
</script>
从函数中传递此对象,并可以从javascript中获取this.id,即ClientID
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。