博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在form上设定了defaultbutton属性之后,切换提交按钮的解决办法
阅读量:4568 次
发布时间:2019-06-08

本文共 2583 字,大约阅读时间需要 8 分钟。

      通常我们有些页面需要设置默认提交按钮。也可能碰到如下情况:在搜索框中输入搜索内容后,按回车搜索,但由于页面设置了默认按钮,而且默认按钮不是搜索按钮,此时使用如下脚本通常都会失败:
function
 textBoxOnKeyDown(event)
{
        
if(event.keyCode == 13)
        
{
            __doPostBack(
'Button2','');
        }
}
      而且使用如下脚本也会失败
function
 textBoxOnKeyDown(event)
{
        
if(event.keyCode == 13)
        
{
            WebForm_FireDefaultButton(event, 
'Button2'); //或在本行前加上return
        }
}
      WebForm_FireDefaultButton是asp.net2的脚本文件里提供的函数,定义如下:
function
 WebForm_FireDefaultButton(event, target) 
{
        
if (event.keyCode == 13 && !(event.srcElement && (event.srcElement.tagName.toLowerCase() == "textarea"))) {
        
var defaultButton = document.getElementById(target);
        
if (defaultButton && typeof(defaultButton.click) != "undefined"{
            defaultButton.click();
            event.cancelBubble 
= true;
            
if (event.stopPropagation) event.stopPropagation();
            
return false;
        }
    }
    
return true;
}
       而我测试能工作的脚本如下:
    
function
 textBoxOnKeyDown(event)
  
{
        
if(event.keyCode == 13)
        
{
            WebForm_FireDefaultButton(event, 
'Button2');
            __doPostBack(
'Button2','');
        }
    }
      在xp专业版,ie6上测试通过,完整的代码如下:
<%
@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication5._Default" 
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html 
xmlns
="http://www.w3.org/1999/xhtml"
 
>
<
head 
runat
="server"
>
    
<
title
>
无标题页
</
title
>
    
<
script 
language
="javascript"
 type
="text/javascript"
>
    
function textBoxOnKeyDown(event)
    
{
        
if(event.keyCode == 13)
        
{
            WebForm_FireDefaultButton(event, 
'Button2');
            __doPostBack(
'Button2','');
        }
    }
    
</
script
>
    
</
head
>
<
body
>
    
<
form 
id
="form1"
 runat
="server"
 defaultbutton
="Button1"
>
    
<
div
>
        
<
asp:Button 
ID
="Button1"
 runat
="server"
 Text
="Button"
 OnClick
="Button1_Click"
 
/>
        
<
asp:TextBox 
ID
="TextBox1"
 runat
="server"
 onkeydown
='textBoxOnKeyDown(event)'
></
asp:TextBox
>
        
<
asp:Button 
ID
="Button2"
 runat
="server"
 Text
="Button"
 OnClick
="Button2_Click"
 
/>
    
</
div
>
    
</
form
>
</
body
>
</
html
>
       后台代码:
using
 System;
using
 System.Data;
using
 System.Configuration;
using
 System.Collections;
using
 System.Web;
using
 System.Web.Security;
using
 System.Web.UI;
using
 System.Web.UI.WebControls;
using
 System.Web.UI.WebControls.WebParts;
using
 System.Web.UI.HtmlControls;
namespace
 WebApplication5
{
    
public partial class _Default : System.Web.UI.Page
    
{
        
protected void Page_Load(object sender, EventArgs e)
        
{
        }
        
protected void Button1_Click(object sender, EventArgs e)
        
{
            
this.Response.Write("Button1_Click");
        }
        
protected void Button2_Click(object sender, EventArgs e)
        
{
            
this.Response.Write("Button2_Click");
        }
    }
}

转载于:https://www.cnblogs.com/ofei/archive/2008/04/04/1137280.html

你可能感兴趣的文章
Java——变量
查看>>
定时关闭AWS上的EC2机器实例
查看>>
grep、awk、sed命令详解1
查看>>
Jenkins邮件配置
查看>>
MYSQL数据库的设计与调优
查看>>
冒泡排序
查看>>
python009 Python3 列表
查看>>
在Apache下开启SSI配置
查看>>
vue中修改了数据但视图无法更新的情况[转载]
查看>>
Delegate
查看>>
.Net 4.0 之并行运算(Parallel)(For、Foreach)
查看>>
phoenix 二级索引使用实践
查看>>
Ajax常用实例
查看>>
双向链表的基本运算 --线性表
查看>>
(九)、线程sleep和wait的区别
查看>>
java 12-4 StringBuffer类的替换、反转、截取功能
查看>>
redis数据类型之hash
查看>>
(转) 汇编.section和.text解释
查看>>
jQueryMobile
查看>>
Web端服务器推送技术原理分析及dwr框架简单的使用
查看>>