允许在文本框中输入键上的按钮单击功能

时间:2016-11-24 17:59:11

标签: jquery asp.net-mvc

在MVC .NET中, 我有一个文本框允许搜索与“按钮”类型的一个按钮相关联(由于功能我无法提交),点击时调用一个允许搜索的方法。

当用户在文本框中输入搜索号码并点击键盘上的“Enter”键时,我希望调用搜索。

我的@Html.BeginForm()

中没有任何提交按钮

以下是代码

@Html.TextBoxFor(m=>m.SearchNo,new {@class="form-control",@maxlength="12" });

<input type="button" id="btnSearch" value="Search" onclick="search();"/>

我尝试过使用以下功能但不起作用:

$("#SearchNo").keyup(function(event){
    if(event.keyCode == 13){
        $("#btnSearch").click();
    }
});

请帮我解决这个问题

1 个答案:

答案 0 :(得分:1)

您正在尝试使用keyup,但当用户在键盘上释放键时,会将键盘事件发送到元素。

您可以使用keypress,当浏览器注册键盘输入时,将按键事件发送到元素。

&#13;
&#13;
$("#SearchNo").keypress(function(event){
  if(event.keyCode == 13){
       alert('You pressed enter!');
    $("#btnSearch").click();
  }
});
$("#btnSearch").click(function() { alert("click"); });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="SearchNo">

<input type="button" id="btnSearch" value="Search" />
&#13;
&#13;
&#13;

更新:

在这种情况下,您可以通过以下方式调用您的函数search()

&#13;
&#13;
$("#SearchNo").keypress(function(event) {
  if (event.keyCode == 13) {
    alert('You pressed enter!');
    Search();
  }
});

function Search() {
  // your ajax call here.
  alert("hi");
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="SearchNo">
<input type="button" id="btnSearch" value="Search" onclick="Search();" />
&#13;
&#13;
&#13;