通过触发按钮阻止表单提交

Dav*_*vid 1 html forms jquery

我有一个表单,里面有几个文本框和几个按钮.我正在处理一些自定义表单元素.其中一个是一个文本框,它将搜索onEnterClicked上的数据库.这工作正常,但我也有一个按钮,将运行代码onClick.这两个似乎都与提交表单有关.

<form onsubmit="return false;">
    <input type="text" id="autofill">
    ...
    <button id="upload">
Run Code Online (Sandbox Code Playgroud)

当我运行这个jQuery代码时:

$("input#autofill").keyUp(function(e){
    //Do stuff
});

$("button#upload").click(function(){
    alert("test");
});
Run Code Online (Sandbox Code Playgroud)

在自动填充文本框中按Enter键将显示测试警报,但不会执行任何//do stuff代码.

我怎样才能防止这种情况发生?

$(function(){
  
  $("#autofill").keyup(function(e){
    
    if(e.keyCode == 13)
    alert("Enter pressed");
    
    });
  
  $("#upload").click(function(){
    
    alert("Button clicked");
    
    });
  
  });
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form onsubmit="return false;">
  <input type="text" id="autofill"/>
  <button id="upload">Click me to show an alert</button>
</form>
Run Code Online (Sandbox Code Playgroud)

Ete*_*our 5

为了防止表单提交<button>,您需要指定type="button".

<button id="upload" type="button">Click me to show an alert</button>
Run Code Online (Sandbox Code Playgroud)

如果您没有指定type,则默认为type="submit",当您按Enter键时将提交表单.