防止INPUT按回车自动提交form表单

需求描述:

当前页面有一个查询框,当该input框按下回车键时,希望默认走查询方法,从列表中查询符合条件的成员,但是浏览器默认的情况下,在input框按下回车键,会触发表单提交(保存按钮)。
防止INPUT按回车自动提交form表单_第1张图片

解决思路:

  1. 阻止表单上按下回车键时自动提交;
  2. 给input框绑定事件,指定当按下回车键时触发查询;

实现代码

<form id="search_form" class="form-horizontal clearfix" role="form" method="post">
    <div class="col-sm-7 form-group">
        <label class="col-xs-4 control-label">姓名label>
        <div class="col-xs-8">
            <input type="text" class="form-control" name="name" onkeydown="gosearch(event);" autocomplete="off"/>
        div>
    div>
    <div class="col-sm-5 form-group text-right">
        <div class="col-xs-12">
            <a class="btn btn-info" href="javascript:submitSearchForm()"><i class="fa fa-search">i>查询a>
            <a class="btn btn-default" href="javascript:resetForm('search_form')"><i
                    class="fa fa-undo">i>重置a>
        div>
    div>
form>

1. 阻止表单上按下回车键时自动提交;
function init() {
    function keydownFn(e) {
        if(e.which===13){
            e.preventDefault();
        }
    }
    var $f = document.getElementById('search_form');
    $f.addEventListener('keydown', keydownFn);
}
init();

2. 给input框绑定事件,指定当按下回车键时触发查询;
function gosearch(e) {
    var evt = window.event || e;
    if (evt.keyCode == 13){
         //回车事件
       submitSearchForm();
    }
}

function submitSearchForm(){
    var params = $("#search_form").serializeJSON();
    $("#user_table").datagrid("load", params);
}

你可能感兴趣的:(前端)