博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
artice与section的区别
查看>>
多租户SaaS的数据库设计模式
查看>>
和小哥哥一起刷洛谷(8) 图论之Floyd“算法”
查看>>
配置Spring
查看>>
bash 参数替换中的模式匹配
查看>>
DLog的使用
查看>>
使用第三方框架 Masonry 实现自动布局
查看>>
简明Linux命令行笔记:bzip2
查看>>
电子科大春季体验营 (都是思维题。。。。)
查看>>
Python - pandas 数据分析
查看>>
导航特效
查看>>
HTTP协议分析及攻防方法
查看>>
编程我们学到了什么?
查看>>
面向过程和面向对象的对比(转)
查看>>
206. 反转链表
查看>>
622. 设计循环队列
查看>>
MCMC 、抽样算法与软件实现
查看>>
Java开源工具 网站开发工具清单
查看>>
POJ 1442 Black Box
查看>>
Python 内置模块:os模块
查看>>