在DotNet2005Web画面中,如果有Submit按钮,在画面任一Text项目上按Enter键,
都会造成画面被提交(Submit)。
按以下手顺来验证“DotNet2005Web画面由Enter键造成Submit的防止方法“
(1)
DotNet2005开发环境-〉文件-〉新Web Site
创建Default.aspx画面,由工具箱拖入一个Textbox和一个Button.
(2)
点开Default.aspx的Html源程序,在head部加入以下的Enter键屏蔽Javascript 程序
<head runat="server">
<title>无题</title>
<script type="text/javascript">
function funcformonkeydown(){
//DotNet2005Web画面由Enter键造成Submit的防止
var src = window.event.srcElement;
if(event.keyCode == 13) {
if (src.type == '' ) {
src.click();
} else if (src.type != 'submit'
&& src.type != 'button'
&& src.type != 'textarea' ) {
return false;
}
}
}
</script>
</head>
(3)
在Default.aspx的PageLoad中加入Javascript 程序的调用
#Region "PageLoad"
''' -----------------------------------------------------------------------------
''' <summary>
''' PageLoad
''' </summary>
''' <remarks>
''' PageLoad Process
''' </remarks>
''' <param name="sender">system object</param>
''' <param name="e">system object</param>
''' <history>
''' DHC 2008/01/02 Created
''' XXXXXXXX 9999/99/99 Updated
''' </history>
''' -----------------------------------------------------------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
Me.form1.Attributes.Clear()
Me.form1.Attributes.Add("onKeyDown", "javascript:return funcformonkeydown();")
'Dim chkEnterKey As String = "<script language='JavaScript'> function chkEnterKey(){ alert(event.keyCode); if (event.keyCode == 13){ return false; } else{ return true; }} <" & "/script>"
'ClientScript.RegisterStartupScript(Me.GetType(), "chkEnterKey", chkEnterKey)
'function chkEnterKey(){
' if (event.keyCode == 13){
' //NG
' return false;
' } else{
' //OK
' return true;
' }
'}
If Not Me.IsPostBack Then
TextBox1.Text = "Not Me.IsPostBack"
Else
TextBox1.Text = "Me.IsPostBack"
End If
Catch ex As Exception
Finally
'Session Time
End Try
End Sub
#End Region