【问题标题】:MultiLine TextBox Not Submitting多行文本框未提交
【发布时间】:2011-08-10 15:10:28
【问题描述】:

我正在编写一个 asp.net 页面,但在提交表单时遇到了一些问题。我拥有的是一个多行文本框。当用户点击回车时,表单应该提交,但它插入了一个新行(这通常是人们遇到的相反问题)。以下是相关的正文代码:

<div align="left">
        Name:

            <asp:TextBox ID="Name" runat="server"></asp:TextBox>

            <asp:Button ID="Clear" runat="server" onclick="Clear_Click" 
                Text="Clear Chat Log" UseSubmitBehavior="False" />

        </div>
        <br />
        <asp:UpdatePanel runat="server" UpdateMode="Conditional">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick"/>
                <asp:AsyncPostBackTrigger ControlID="Go" EventName="Click" />
            </Triggers>
            <ContentTemplate>
                <asp:TextBox id="Chat" runat="server" ReadOnly="true" TextMode="MultiLine" Width="400" Height="630" />
                <asp:Timer runat="server" Interval="500" OnTick="Timer_Tick" ID="UpdateTimer"/>
            </ContentTemplate>
        </asp:UpdatePanel>
        <asp:UpdatePanel runat="server" UpdateMode="Conditional">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Go" EventName="Click" />
            </Triggers>
            <ContentTemplate>
                <br/>
                <asp:TextBox id="Message" runat="server" Width="400" Wrap="true" Height="40px" 
                    TextMode="MultiLine" AutoCompleteType="Disabled" AutoPostBack="True"/>
                <asp:Button id="Go" runat="server" Text="Go" Width="40px" Height="40px" OnClick="goClicked" UseSubmitBehavior="true"/>
            </ContentTemplate>
        </asp:UpdatePanel>

我的猜测是问题出在更新面板上。基本上,如果用户在“消息”文本框中按 Enter 键,“开始”按钮应该会触发(这些都在列表的底部)

感谢您的帮助, 最大

【问题讨论】:

    标签: c# asp.net-ajax textbox updatepanel


    【解决方案1】:

    您需要在多行文本框中捕获键 Enter ,然后提交表单;使用 Javascript。一个样本:

    <input type="text" id="txtMultiline" onkeydown="if(event.keyCode == 13) document.getElementById('btnSubmit').click()"/>
    

    【讨论】:

    • 是的,我最终在别处找到了这个解决方案,标记为答案
    【解决方案2】:

    试试 Ctrl+Enter。另外,Facebook 消息页面也有类似的行为,但您可以选择模式:“快速回复”vs 按钮。

    【讨论】:

      【解决方案3】:

      添加另一个文本框,如下所示:

      <asp:TextBox ID="txtSubmitOnEnter" runat="server" Width="0" style="visibility:hidden;display:none;" />      
      

      它应该在那之后工作。

      【讨论】:

      • 有什么特别的地方我应该放这个吗?我试着把它放在更新面板里面和外面,但都没有奏效。你能解释一下为什么这应该有效吗?跟UpdatePanel有关系吗?
      • 我以前也遇到过同样的问题,我希望用户能够在搜索栏中按回车键来执行搜索,这就是有效的解决方案。尝试将另一个文本框放在提交按钮的正下方。我不知道它为什么有效,但它对我有用。
      • 不幸的是,这不起作用。我怀疑更新面板搞砸了
      • 能否尝试将TextBox的AutoPostBack属性设置为false,看看有什么不同?
      猜你喜欢
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      相关资源
      最近更新 更多