【问题标题】:Allow button click function on the Enter Key in Textbox允许文本框中输入键上的按钮单击功能
【发布时间】:2016-11-25 13:44:53
【问题描述】:

在 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();
    }
});

请帮我解决这个问题

【问题讨论】:

  • 试试$("#SearchNo").keypress(function(e) {..
  • 你必须使用 keydown 来捕获不可打印的击键

标签: jquery asp.net-mvc


【解决方案1】:

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

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

$("#SearchNo").keypress(function(event){
  if(event.keyCode == 13){
       alert('You pressed enter!');
    $("#btnSearch").click();
  }
});
$("#btnSearch").click(function() { alert("click"); });
<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" />

更新:

在这种情况下,你可以这样调用你的函数search()

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

function Search() {
  // your ajax call here.
  alert("hi");
}
<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();" />

【讨论】:

  • 代码 sn-p 工作...我在这个搜索按钮上点击了 ajax 调用,所以即使 即使我不写 $("#btnSearch").click(function() { // code }); 这也会起作用具体来说??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
  • 2018-09-23
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
相关资源
最近更新 更多