如何用enter key正确提交Form

来源:互联网 发布:淘宝lolita店铺推荐 编辑:程序博客网 时间:2024/05/17 03:07

一开始我使用了这个方法.
<script language="JavaScript" type="text/javascript">
    <!–
    //event handler
    if (document.addEventListener)   //Mozilla
        document.addEventListener("keyup",OnKeyup,true);
    else
        document.attachEvent("onkeyup",OnKeyup);

    function OnKeyup(event)
    {
        if(event.keyCode == 13  && event.srcElement.id =="txtAccountID" ) //&& event.shiftKey==true
        {
            var b = document.getElementById("btnUpdateOne");
            b.click();
        }
    }
    //–>
</script>

在Textbox上,还有一个validator 来验证用户输入,如果输入非法的字符,再使用button来提交,
validator 会提示错误,页面也不会被提交.但如果使用enter key来提交,validator会提示错误,
同时页面也会被提交.
在asp .net 2.0中,这个问题已被修正,如果输入非法字符,再使用enter key,页面不会被提交.

后来我使用了一下的方法:

if (!Page.IsPostBack)
{
    TextBox1.Attributes.Add("onkeydown", "if(event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById(’" + this.Button_OK.ClientID + "’).click();return false;}} else {return true}; ");  

    StringBuilder sb = new StringBuilder();
    sb.Append("if(event.keyCode)");
    sb.Append("{");
    sb.Append("     if (event.keyCode == 13)");
    sb.Append("     {");
    sb.Append("         document.getElementById(’" + this.Button_OK.ClientID + "’).click();");
    sb.Append("          return false;");
    sb.Append("      }");
    sb.Append("}");
    sb.Append("else");
    sb.Append("{return true}; ");
    this.TextBox1.Attributes.Add("onkeydown", sb.ToString());
}

 
原创粉丝点击