2

我们如何在页面中制作表单而不是在按下时提交Enter- 而是。它与按下特定按钮或图标或图像的作用相同吗?

以下是我的表格内容:

<input type="text" id="txt" /><input type="button" value="search"            
 onclick="searchresult()" />

问题是,如果我按Enter,表单会提交并且文本字段会自行清除,但该功能searchresult()不会显示其效果。当只按下按钮时,它工作得很好。

4

4 回答 4

5

HTML

<input type="text" id="txt"/>
<input type="button" value="search"/>

jQuery

$('input[type=text]').on('keyup', function(e) {
  if(e.which == 13) {   // 13 is keycode for enter
    e.preventDefault();
  }
})

您还可以绑定到submit()以下

$('form').submit(function(e) {  // instead of only `form`, 
                                // use with `id` or `class` combination
   if(e.which == 13) {
     e.preventDefault();
   }
});

不要忘记将代码放入

$(document).ready(function() {
   // your code
});

简而言之

$(function() {
  // your code
});
于 2012-06-04T19:31:51.150 回答
1

尝试:

$('form').submit(function(event){
    if(!$(':focus',this).is(':button'))
        event.preventDefault();
});

这附加到表单本身。如果它是通过单击提交按钮以外的任何方式提交的,它会停止提交过程。为了获得更好的性能,缩小'form'选择器的范围。

于 2012-06-04T19:32:48.090 回答
1

或者,您可以绑定到onsubmit事件以在提交表单之前执行任何处理,而不是禁用 enter 键。从MDN 文档

当用户单击表单 () 中的提交按钮时,将引发提交事件。

于 2012-06-04T19:33:09.743 回答
0

尝试这个:

形式

<form id="myForm">
<input type="text" id="txt" />
<input type="submit" value="search" />
</form>

js

<script>
$(document).ready(function(){
    $("#myForm").submit(function(e){
        e.preventDefault();
        searchresult();
    });
});
</script>
于 2012-06-04T19:54:15.973 回答