DotNet2005Web画面由Enter键造成Submit的防止

来源:互联网 发布:终极算法电子书 编辑:程序博客网 时间:2024/06/05 08:29

 在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

 

原创粉丝点击