一开始我使用了这个方法.
<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());
}