MultiLine TextBox не отправляется - PullRequest
0 голосов
/ 10 августа 2011

Я пишу страницу 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>

Я предполагаю, что проблема заключается в обновлении панелей. Как правило, кнопка «Перейти» должна срабатывать, если пользователь нажимает клавишу ввода в текстовом поле «Сообщение» (они оба находятся внизу списка)

Спасибо за вашу помощь, Max

Ответы [ 3 ]

1 голос
/ 11 августа 2011

Вам нужно перехватить клавишу Enter в многострочном текстовом поле, а затем отправить форму; с помощью Javascript. Образец:

<input type="text" id="txtMultiline" onkeydown="if(event.keyCode == 13) document.getElementById('btnSubmit').click()"/>
0 голосов
/ 10 августа 2011

Добавьте еще один TextBox, например:

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

После этого должно сработать.

0 голосов
/ 10 августа 2011

Попробуйте Ctrl + Enter.Кроме того, страница сообщений Facebook имеет похожее поведение, но вы можете выбрать режим: «Быстрый ответ» против кнопки.

...