JSF中使用jquery拦截ajax请求

时间:2023-03-09 00:06:23
JSF中使用jquery拦截ajax请求

   jsf提供一个内置的jsf.ajax.request方法给我们使用,如果在jquery中使用,则需要做一些更改。

   此处因为使用jquery,所以可以不必在控件中添加onclick方法了,可以给控件配置一个id,然后让其在jquery中绑定控件的点击事件,示例性代码如下:

  

 $("#favoriteBtn").on("click",function(event){
jsf.ajax.request(event.target,event,{
execute:'favoriteBtn',
onevent:function(data){
if(data.status=="success"){
   alert("收藏成功!")
}
},
onerror:function(data){
alert('收藏失败!');
}
});
event.preventDefault();
});
});

在第二行中,本应该是配置该点击控件的id的,结果发现配置id后,点击事件之后会再次提交表单,改成event.target就没有问题了。其次在第13行中使用了event.preventDefault()方法来阻止表单提交,在原js中是可以返回一个false来阻止提交的,但是这个方法在firefox中没有作用,return false只在chrome和IE浏览器下才会起效。