需求描述:
当前页面有一个查询框,当该input框按下回车键时,希望默认走查询方法,从列表中查询符合条件的成员,但是浏览器默认的情况下,在input框按下回车键,会触发表单提交(保存按钮)。
解决思路:
- 阻止表单上按下回车键时自动提交;
- 给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);
}