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浏览器下才会起效。