JSF中使用jquery拦截ajax请求

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

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

  

 1 $("#favoriteBtn").on("click",function(event){
 2     jsf.ajax.request(event.target,event,{
 3         execute:'favoriteBtn',
 4         onevent:function(data){
 5         if(data.status=="success"){
 6               alert("收藏成功!")
 7             }
 8         },
 9         onerror:function(data){
10                 alert('收藏失败!');
11             }
12         });
13         event.preventDefault();
14     });
15 });

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