Подтвердить что ты не робот

Выполните событие нажатия кнопки, когда пользователь нажимает клавишу Enter в текстовом поле

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Send" />
</ContentTemplate>
</asp:UpdatePanel>

Мне нужно выполнить событие Button1 click, когда пользователь нажимает Enter key в Textbox1

4b9b3361

Ответ 1

В событии загрузки страницы aspx добавьте в поле onkeypress.

this.TextBox1.Attributes.Add(
    "onkeypress", "button_click(this,'" + this.Button1.ClientID + "')");

Затем добавьте этот javascript для оценки нажатия клавиши, и если он "введите", нажмите правую кнопку.

<script>
    function button_click(objTextBox,objBtnID)
    {
        if(window.event.keyCode==13)
        {
            document.getElementById(objBtnID).focus();
            document.getElementById(objBtnID).click();
        }
    }
</script>

Ответ 2

Поместите свою форму внутри элемента управления панели asp.net и установите свой атрибут defaultButton с помощью кнопки Id. См. Код ниже:

  <asp:Panel ID="Panel1" runat="server" DefaultButton="Button1">
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
         <ContentTemplate>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Send" />
             </ContentTemplate>
          </asp:UpdatePanel>
    </asp:Panel>

Надеюсь, это поможет вам...

Ответ 3

Codeproject имеет полное решение для этого:

http://www.codeproject.com/Articles/17241/Capturing-the-Enter-key-to-cause-a-button-click

и, как в статье, говорится: "Решите, какое решение лучше всего соответствует вашим потребностям"

=================== ОТДЕЛЬНЫЙ ОТВЕТ ========================================================================= ==

Ссылка, упомянутая выше, рассказывает о двух способах захвата события "Введите ключ":

Javascript (привяжите событие onKeyPress к объекту и создайте функцию javascript, чтобы проверить, какой ключ был нажат, и выполните свою логику)

_Page_Load в коде позади: _

 //Add the javascript so we know where we want the enter key press to go
if (!IsPostBack)
{
   txtboxFirstName.Attributes.Add("onKeyPress", 
                   "doClick('" + btnSearch.ClientID + "',event)");
   txtboxLastName.Attributes.Add("onKeyPress", 
                  "doClick('" + btnSearch.ClientID + "',event)");
}

Код Javascript:

<SCRIPT type=text/javascript>
    function doClick(buttonName,e)
    {
        //the purpose of this function is to allow the enter key to 
        //point to the correct button to click.
        var key;

         if(window.event)
              key = window.event.keyCode;     //IE
         else
              key = e.which;     //firefox

        if (key == 13)
        {
            //Get the button the user wants to have clicked
            var btn = document.getElementById(buttonName);
            if (btn != null)
            { //If we find the button click it
                btn.click();
                event.keyCode = 0
            }
        }
   }
</SCRIPT>

Управление панелью

<asp:Panel ID="panSearch" runat="server" DefaultButton="btnSearch2" Width="100%" >
    <asp:TextBox ID="txtboxFirstName2" runat="server" ></asp:TextBox>
</asp:Panel>

Цитирование:

Обратите внимание, что тег Panel имеет свойство DefaultButton. Ты устанавливаешь это свойство к ID кнопки кнопки, на которую вы хотите нажать нажмите клавишу Enter. Поэтому любое текстовое поле внутри панели будет нажмите клавишу Enter, чтобы нажать кнопку, установленную в DefaultButton собственности Группы

Ответ 4

Вы можете сделать это с помощью javascript/jquery:

<script>
    function runScript(e) {
        if (e.keyCode == 13) {
            $("#myButton").click(); //jquery
            document.getElementById("myButton").click(); //javascript
        }
    }
</script>

<asp:textbox id="txtUsername" runat="server" onkeypress="return runScript(event)" />

<asp:LinkButton id="myButton" text="Login" runat="server" />

Ответ 5

Вы можете попробовать:

В HTML:

    <asp:TextBox ID="TextBox1" runat="server" onKeyDown="submitButton(event)"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

И javascript:

function submitButton(event) {
        if (event.which == 13) {
            $('#Button1').trigger('click');
        }
    }

Код позади:

protected void Button1_Click(object sender, EventArgs e)
{
        //load data and fill to gridview
} // fixed the function view for users

Надеемся на эту помощь