Profil de ZhihaiShanghai AOE Network Tec...PhotosBlogListesPlus Outils Aide

Blog


28/08/2008

Javascript限制TextMode="MultiLine"的TextBox的输入长度

问题:在TextMode="MultiLine"类型的TextBox中,MaxLength属性是不管用的。为了达到类似MaxLength的效果,见如下步骤:
1:创建Javascript脚本
function onEnterClick(sText,event)
{
    var intlen=sText.value.length;
    var eventObj=(event==null)?window.event:event;
    var keyCode=(eventObj.which)?eventObj.which:eventObj.keyCode;
    if(intlen>=256 && keyCode!=8 && keyCode!=13 && keyCode!=37 && keyCode!=38 && keyCode!=39 && keyCode!=40 && keyCode!=46 )
    {
        return false;
    }
    else
    {
        return true;
    }
}
2:TextBox调用脚本
<asp:TextBox ID="txtContent" runat="server" onkeypress="javascript:return onEnterClick(this,event);" onchange="javascript:if(this.value.length>256)this.value.substr(0,256);">

Javascript执行Net后台代码

需求:txtUsername,txtPassword,lbtLogin. 当用户输入用户名和密码后,按下回车[Enter]键,要执行类似点击Login按钮的效果。
注意事项:要注意IE与FireFox的不同
步骤:
1:添加Javascript
function KeyPress(e)
{
    var keycode = (window.event)?window.event.keyCode:e.which;
    if(keycode==13)//是否是回车键
    {
        if(window.event)//IE
        {
            e.keyCode=0;
        }
        else//FireFox
        {
            e.preventDefault();//取消事件的默认动作。例如:如果type属性是"submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。
        }
        __doPostBack("<%=lbtLogin.UniqueID%>","");//回调函数执行lbtLogin.Click事件
    }
}
2:在txtPassword控件中引用上面脚本
<asp:TextBox ID="txtUsername" runat="server" ></asp:TextBox>
<asp:TextBox ID="txtPassword" runat="server" onkeypress="javascript:KeyPress(event);"></asp:TextBox>
<asp:LinkButton ID="lbtLogin" runat="server" >Login</LinkButton>
3:后台cs文件lbtLogin Click事件处理程序(略...)