最近在做搜索查询功能时,发现在只有一个“input”元素下时,按“enter”键,
页面会自动提交数据,进行地址的跳转。
下面是代码的片段
<form id="searchForm">
<div id="searInfo" > 姓名:<input class="easyui-textbox" id="name" name="name" type="text" />
<a id="searBtn" class="easyui-linkbutton" onclick="sear()" iconCls="icon-search" style="display:none;">搜索</a>
</div>
</form>
$(function () {
$("#dg_new").datagrid({
$("#searInfo").bind("keydown",function(){
var event = window.event || arguments.callee.caller.arguments[0];
if (event.keyCode == 13){
sear();
}
});
});
// 搜索方法
function sear() {
if($('#searchForm').form('validate')){
var name = $.trim($('#name').val());
$('#dg').datagrid({
queryParams:{
name : name
}
});
$('#dg').datagrid('reload');
}
}
当我按“enter”时,页面的url后面就直接添加了“?name=xxx”,
我认为它直接就把当作页面中唯一一个”input“元素当作了最后一个处理执行了表单的操作,
所以这里的搜索便无效了。这时候建议最后在后面添加一个
隐藏属性的input标签,这样就可以避免类似的情况。
<form id="searchForm">
<div id="searInfo" > 姓名:<input class="easyui-textbox" id="name" name="name" type="text" />
*<input style="display:none;" id="ddd" type="text" />*
<a id="searBtn" class="easyui-linkbutton" onclick="sear()" iconCls="icon-search" style="display:none;">搜索</a>
</div>
</form>
参考资料:http://blog.csdn.net/jin8907/article/details/7937498