将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
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...