我只使用onsubmit,即使只是刷新我的网格,但我不知道页面重新加载的原因
这是我的表格行动
<form id="fff" onsubmit="return get_Search()">
这是我的搜索按钮
<li><a href="#" class="srch" onclick="get_Search()"></a></li>
我的点击活动
$j( "#PrsNo" ).keypress(function( event ) {
if ( event.which == 13 ) {
get_Search();
}
});
这是我的功能:
function get_Search()
{
// alert('enter');
var PrsNo = $("#PrsNo").val();
var PrsRequestedBy = $("#PrsRequestedBy ").val();
var PrsDepartment = $("#PrsDepartment").val();
var PrsTheme = $("#PrsTheme").val();
var PrsMerchandiserName = $("#PrsMerchandiserName").val();
var SentDate = $("#SentDate").val();
var PrsStatus = $("#PrsStatus").val();
// alert(PrsNo);
$j('#flex1').flexOptions({newp:1, params:[{name:'searchtype', value: '1'},{name:'prsno', value: PrsNo},{name:'prsreqby',value:PrsRequestedBy},{name:'prsdepar',value:PrsDepartment},{name:'prstheme',value:PrsTheme},{name:'prsmername', value: PrsMerchandiserName},{name:'prssentdate', value: SentDate},{name:'pstatus',value:PrsStatus}]});
$j("#flex1").flexReload();
}
但是当我按回车或点击搜索图标时,我不知道我的页面重新加载的原因。
可能是什么原因,如果需要,我将提供完整的代码
这是我的Controller
答案 0 :(得分:0)
添加:
function get_Search(ev) // ev is event applied in the context of selector.
{
ev.preventDefault();
// other code
}
在您的标记中,您可以将该事件作为参数传递给函数:
onsubmit="return get_Search(event)"
onclick="return get_Search(event)"
和
if ( event.which == 13 ) {
get_Search(event);
}
答案 1 :(得分:0)
它重新加载,因为在表单子目录中,表单的动作会自动触发。如果您没有设置操作,则操作为空字符串,这会使您的页面重新加载。您可以通过将onsubmit更改为:
来防止这种情况发生<form id="fff" onsubmit="event.preventDefault();return get_Search();">
答案 2 :(得分:0)
您尚未向标记提供action属性,因此w3c标准为此案例定义了默认值。重定向到当前页面。
要压制此行为,您必须将e.preventDefault()提供给已绑定eventlistener的函数
像这样:function get_Search(event)
{ event.preventDefault() }
这将抑制分布式事件的默认行为,并且不会发生重定向
希望这有帮助
答案 3 :(得分:0)
通过.submit()
方法或submit
按钮点击提交表单。没有任何类型的正常<input type="submit"
或<button>
是提交按钮
按Enter键启动implicit form submission。这将反过来触发'onsubmit'
处理程序。
请注意,如果表单是通过用户操作而不是JavaScript方法提交的,则执行此处理程序。
如果onsubmit处理程序(在本例中为get_Search()
)返回false,则不会提交表单。在你的情况下,因为没有返回声明(暗示未定义),因此表格将被提交
同时单击锚点也不会触发任何onsubmit事件。它只会触发将执行处理程序的onclick事件。