none
Javascript或者JQUERY 能否记住让textbox 失去焦点的上一个控件 RRS feed

  • 问题

  • Textbox 有一个onchange 事件,当这个textbox 失去焦点时,onchange 事件会被触发,但这样会有用户体验问题。

    比如 页面上有两个textbox, textbox1 和 textbox2,textbox1有onchange事件。当user 在textbox1 中输入后,会用鼠标点击textbox2 进行textbox2的输入,但这时会触发textbox1的onchange事件,user 必须得再一次点击textbox2 才能输入。

    我想请教一下,如何能够在textbox1的onchange  事件中 获得是哪一个控件触发了onchange 事件? 这样我就可以让它获得焦点,就不用用户点2次了。

    谢谢大家的回答。

    2012年9月7日 7:26

答案

全部回复

  • textbox1.onchange 事件最后一行代码后,添加 textbox2.focus() 的脚本,是不是你要的呢?

    代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
    
    <!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 type="text/javascript">
            function onTextBox1ChangeHandle() {
                // 你的代码
                document.getElementById('TextBox2').focus();
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:TextBox ID="TextBox1" runat="server" onchange="onTextBox1ChangeHandle();"></asp:TextBox>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        
        </div>
        </form>
    </body>
    </html>
    

    2012年9月7日 8:18
  • 整个用一个方法就可以 onfocus="javascript:textBoxFocus(this);" 把this传递过去就好了
    2012年9月8日 13:43
    版主
  • textbox1.onchange 事件最后一行代码后,添加 textbox2.focus() 的脚本,是不是你要的呢?

    代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
    
    <!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 type="text/javascript">
            function onTextBox1ChangeHandle() {
                // 你的代码
                document.getElementById('TextBox2').focus();
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:TextBox ID="TextBox1" runat="server" onchange="onTextBox1ChangeHandle();"></asp:TextBox>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        
        </div>
        </form>
    </body>
    </html>

    整个用一个方法就可以 onfocus="javascript:textBoxFocus(this);" 把this传递过去就好了
    2012年9月8日 13:44
    版主
  • 页面上不只两个控件的。

    2012年9月10日 11:38
  • 这个真心没看懂
    • 已编辑 tyrbl 2012年9月10日 11:39
    2012年9月10日 11:39
  • $(".class").bind("focus",function(){

    });

    太多实现方法了

    2012年9月10日 12:18
    版主
  • $(".class").bind("focus",function(){

    });

    太多实现方法了

    这个可以记住是哪个控件触发了text box 的textchange 事件吗?
    貌似不行啊,可以再具体点吗?
    2012年9月11日 10:04
  • 在function里面可以用this

    $(".class").bind("focus",function(){

    alert($(this).val());

    });

    2012年9月15日 12:42
    版主