<input type="text" id="fname" onblur="upperCase()" />这样用没问题
但假如是asp呢?
<asp:TextBox ID="fname" runat="server">
这时就没法用onbulr了吗?因为textbox没有onblur的属性
该怎么解决呢?

解决方案 »

  1.   

    你在<input type="text" id="fname" onblur="upperCase()" />里面加一个runat="server"变成服务器控件一样的了,或者哥们你可以自己写一个自定义服务器控件,呵呵,是有点麻烦
      

  2.   

    给出一段代码:
    <table>
    <tr>
    <td>
    <asp:Label ID = "lbl" runat="server"></asp:Label>
    </td>
    <td>
    <asp:TextBox ID="txt" runat="server"></asp:TextBox>
    </td>
    </tr>
    </table>
    另外,我有一段脚本:
    <script type="text/javascript">
    var labelID="<%=lbl.ClientID%>";
    function ChangeLabelText()
    {
    var label = document.getElementById(labelID);
    label.InnerText = "kk";
    }
    </script>
    这样我就有两种选择
    1、直接写在textbox里:
    <asp:TextBox ID="txt" runat="server" onblur="javascript:ChangeLabelText();"></asp:TextBox>
    2、写在后台:
    this.txt.Attributes.Add("onblur","javascript:ChangeLabelText();");这两种方法的效果是等同的。
      

  3.   


    唉,晕啊!这种东西要说多少次呢?asp.net入门书难道都一点也不明确讲一下基本原理吗。你可以写<asp:TextBox ID="fname" runat="server" onblur="upperCase()">自己试一下就知道了,你可以添加任意多自定义属性。从代码角度,asp.net服务器控件有 Attrbutes 属性,这个集合可以添加任何自定义属性。
      

  4.   

    TextBox服务器控件最终还是解析为input type="text"
    你直接写上去试试就知道了。
      

  5.   

    <asp:TextBox ID="fname" runat="server" onblur="upperCase()">
    可以的,TextBox最终生成的就是input,在XHTML中完全没有问题