jquery笔记

最近在改bug,涉及到很多前端验证的问题,整理了一下。


1.bind使用:

bind(type,[data],fn)为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数。这个事件处理函数会接收到一个事件对象,可以通过它来阻止(浏览器)默认的行为。如果既想取消默认的行为,又想阻止事件起泡,这个事件处理函数必须返回false。多数情况下,可以把事件处理器函数定义为匿名函数(见示例一)。在不可能定义匿名函数的情况下,可以传递一个可选的数据对象作为第二个参数(而事件处理器函数则作为第三个参数),见示例二。
返回值 : jQuery
参数 :
type (String) : 事件类型
data (Object) : (可选) 作为event.data属性值传递给事件对象的额外数据对象
fn ( Function) : 绑定到每个匹配元素的事件上面的处理函数
示例 : 当每个段落被点击的时候,弹出其文本。
jQuery 代码:
$("p").bind("click", function(){
alert( $(this).text() );
});
--------------------------------------------------------------------------------
你可以在事件处理之前传递一些附加的数据。
jQuery 代码:
[code="java"]
function handler(event) {
alert(event.data.foo);
}
$("p").bind("click", {foo: "bar"}, handler)
[/code]
--------------------------------------------------------------------------------
通过返回false来取消默认的行为并阻止事件起泡。
jQuery 代码:
[code="java"]
$("form").bind("submit", function() { return false; })
[/code]
--------------------------------------------------------------------------------
通过使用 preventDefault() 方法只取消默认的行为。
jQuery 代码:
[code="java"]
$("form").bind("submit", function(event){
event.preventDefault();
});
[/code]
--------------------------------------------------------------------------------
通过使用 stopPropagation() 方法只阻止一个事件起泡。
jQuery 代码:
[code]
$("form").bind("submit", function(event){
event.stopPropagation();
});
[/code]


=====================华丽的分割线===============================================

2.ajax 提交问题:


$.ajax({
type:"get",
url:"del/checkDeleteForIds.do",
data:value,
complete:function(data){
var aa = eval("("+data.responseText+")");
if(aa.msg==0) {//无用户
tipShow('#delMsgTip');
}else if (aa.msg==2) {
$("#DeleteWithUserButton").attr("style","display:none");
tipShow('#alertNoSelect');
}else {//有用户
$("#roleNames").text(aa.roleNames);
$("#DeleteRolesButton").attr("style","display:none");
tipShow('#delMsgTipWithUsers');
}
}
});



上面用success的时候就不行,改为complete就可以了。有点诡异,现在还不知道为什么。

---------------------

$("#roleNames").text(aa.roleNames);
//这个方法可以将后台传过来的数据赋给id=roleNames的dom。


-----------------


$("#DeleteRolesButton").attr("style","display:none");
//attr 将属性值赋给dom对象。


---------------------

对应后台java代码:springMVC 返回json对象

@RequestMapping("/role/del/checkDeleteForIds.do")
public void checkDeleteForIds(int[] ids, HttpServletRequest request,HttpServletResponse response, ModelMap model) throws IOException {
if(ids==null) {
ResponseUtils.printJson(response,"{success:true,msg:2}");
return;
}
String roleNames="";
for(int i=0;i<ids.length;i++) {
if(pmsRoleBO.checkUserByRoleId(ids[i])) {
roleNames = pmsRoleBO.getNameByRoleIds(ids) + " ";
}
}
if(roleNames.equals("")) {//所选角色下无用户
ResponseUtils.printJson(response,"{success:true,msg:0}");
} else {//角色下有用户
model.addAttribute("roleNames", roleNames);
ResponseUtils.printJson(response,"{success:true,msg:1,roleNames:'"+roleNames+"'}");
}
}



public static void printJson(HttpServletResponse response, String text)
throws IOException {
print(response, "application/json;charset=UTF-8", text);
}



private static void print(HttpServletResponse response, String contentType,
String text) throws IOException {
response.setContentType(contentType);
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
PrintWriter pw = response.getWriter();
pw.write(text);
pw.close();
}


===================================华丽的分割线==================================

还是分开记录吧,每个问题开一个文章,这样好找些。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值