码迷,mamicode.com
首页 > Web开发 > 详细

【WebForm】编程点滴:由文本框回车触发按钮点击事件想到的

时间:2014-06-18 12:58:24      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   java   http   

在WebFomr中我们常常会需要实现这样一个功能:文本框回车时触发触发其他按钮的click事件。在JS中我们常常这样做:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript">
        function onSubmit(e) {
            if (e.keyCode == 13 || e.which == 13) {
                document.getElementById("btnSearch").click();
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <input type="text" id="txtName" runat="server" onkeydown="onSubmit(event)"/>
            <input type="button" value="Search" id="btnSearch" runat="server" onserverclick="btnSearch_ServerClick"  />
        </div>
    </form>
</body>
</html>

注:以上代码在IE11和火狐中测试通过(希望大家踊跃拍砖提供给我更好的方案,不胜感激!)

考虑到JS的兼容性问题,我们常常这么干:

aspx
<input type="text" id="txtName" runat="server" onserverchange="txtName_ServerChange" />

aspx.cs
protected void btnSearch_ServerClick(object sender, EventArgs e)
{
    Response.Write("<script>alert(触发了点击事件)</script>");
}
protected void txtName_ServerChange(object sender, EventArgs e)
{
    btnSearch_ServerClick(btnSearch,new EventArgs());
    //Write your own logic
}

其实更简单地我们这样做:

<input type="text" id="txtName" runat="server" onserverchange="btnSearch_ServerClick" />

其实就是文本框文本改变时事件和按钮点击事件共用一个实现。这其实就是不同的事件共用一个实现。还蛮有用的,很多时候。

当然在一个控件的事件里调用另一个控件事件的实现也是一种很灵活的编码。因为你不仅可以调用其它控件的实现类似的功能。这其实也是代码复用的一种特殊形式了。而且针对控件本身你还可以有自己的逻辑。比如上面的文本框的txtName_ServerChange事件里边,你可以直接调用按钮的点击事件。同时你也可以写其它的逻辑实现。这算不是算是一种代码重构呢?呵呵,一点小小的编程感悟,不是很成熟,希望大家给我意见。

【WebForm】编程点滴:由文本框回车触发按钮点击事件想到的,布布扣,bubuko.com

【WebForm】编程点滴:由文本框回车触发按钮点击事件想到的

标签:style   class   blog   code   java   http   

原文地址:http://www.cnblogs.com/fengchengjushi/p/3791930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!