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

你可能感兴趣的文章
一个JS的面试题及其解析
查看>>
python小白-day5 time&datetime模块
查看>>
ffmpeg 转换VC工具已经可以生成工程文件(续)
查看>>
OpenGL + C++ + Java
查看>>
UOJ #15 虫洞路线
查看>>
一些较好的书
查看>>
MySQL命令:约束
查看>>
音频焦点问题
查看>>
Operating System-Thread(2) Multi-Process-Parallel vs Multi-Thread-Parallel
查看>>
vi补充
查看>>
第二十一章流 5 多种打开文件的方式 文件存在,文件不存在
查看>>
【转】在Win10家庭版中启用组策略
查看>>
git 生成 公钥
查看>>
luoguP4841 城市规划
查看>>
爬虫到底是什么?
查看>>
收藏基本Java项目开发的书
查看>>
getResource()和getResourceAsStream()以及路径问题
查看>>
00080_泛型
查看>>
Java Map 键值对排序 按key排序和按Value排序
查看>>
[笔面] Java IO和网络编程相关面试
查看>>