【问题标题】:Append semicolon on pressing enter key in asp.net textbox在asp.net文本框中按回车键附加分号
【发布时间】:2011-09-05 13:34:41
【问题描述】:

如何在 asp.net 文本框(Web 应用程序)的文本中添加分号,按下 enter 并将光标移动到下一行?

【问题讨论】:

    标签: javascript .net dom-events


    【解决方案1】:

    这是一个使用纯 JavaScript 的解决方案。

    HTML

    <asp:TextBox ID="DemoTextBox" runat="server" 
            CssClass="textarea"
            TextMode="MultiLine"/>
    

    代码隐藏(onclick javascript 事件连接)

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            DemoTextBox.Attributes.Add("onkeypress", "AppendSemiColon(this, event)");
        }
    }
    

    JavaScript

    function AppendSemiColon(objTextBox, evt) {
        if (evt.keyCode == 13) {
            objTextBox.value += ";";
        }
    }
    

    【讨论】:

    • 我尝试了你的代码,但它不起作用,我需要错误对象。 txtActionTaken.Attributes.Add("onkeypress", "AppendSemicolon(this,event)");
    • 您好,请您帮忙解决这个问题
    • 我检查了代码,一切都很好,但它不起作用,我开始需要这个错误对象。你能告诉我导致错误的重量吗?
    • 问题是控件在 tabcontainer 中,java 脚本无法找到控件的 id,所以我将 id 'txtActionTaken' 替换为 TabContainer1_TabPanel3_txtActionTaken 并且它起作用了。
    【解决方案2】:

    您可以在 JavaScript 中捕获 keypress 事件并检查它是哪个键。 “回车”的键码是 13。所以如果他们按下回车,附加一个分号并返回。像这样的:

    编辑:(包含 ASP.NET 标记等的更完整示例)

    <!-- page headers, other markup, etc. -->
    <asp:TextBox ID="txtActiontaken" runat="server" />
    <!-- other markup, the rest of the page, etc. -->
    <script type="text/javascript">
      $(document).ready(function(){
        $('#<%=txtActiontaken.ClientID%>').keypress(function(e) {
          if(e.keyCode == 13) {
            // append a semi-colon to the control's value
            $('#<%=txtActiontaken.ClientID%>').val($(' <%=txtActiontaken.ClientID%>').val()+';');
          }
          return true;
        });
      });
    </script>
    

    【讨论】:

    • 在哪里复制这段代码在appn..你能告诉我一个例子。
    • 你能告诉我如何在asp.net web应用程序中访问上述代码吗?如果有例子,它会很有帮助。
    • @Uneverno:这是 JavaScript 代码(特别是使用 jQuery 库,因为这在当今已经很常见了),所以它会出现在页面本身上。您可能希望将它放在页面底部并将其包装在 $(document).ready(function(){ ... }); 中,以确保它在 DOM 加载之前不会运行。你确实用JavaScript 标记了这个问题,所以我想你知道我在说什么,对吧?
    • 我仍然不知道如何访问代码..请耐心等待..我在源页面中尝试如下****$(document).ready(function(e){ if( e.keyCode == 13) { $('txtActiontaken').val($('txtActiontaken').val()+';'); } return true; });**** 在代码文件中,我调用了如下函数*** txtActionTaken.Attributes.Add("onkeypress", "function(event)");*** ..不正确..
    • @Uneverno:您不必在 C# 代码文件中添加任何内容。这完全是客户端操作。您只需将 jQuery 库包含在您的页面中,然后将该 JavaScript 代码添加到相关页面即可。您唯一需要更改的是您可能需要将txtActiontaken 替换为&lt;%=txtActiontaken.ClientID%&gt;,因为该标识符可能是服务器端的,而JavaScript 将需要客户端标识符。另外,不要忘记 jQuery 选择器中的 # 之前的 #(如我的示例中所示)。如果您使用 Google jQuery,您可以找到很多文档和示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多