代码如下在firefox opera等浏览器都能正常运行
但是在IE6中 响应按键事件keydown后会自动触发失去焦点事件导致运行了两次异步处理数据库有什么办法解决吗?
$(document).ready(function()
{
$(".caname").click(function()
{
var objTD=$(this);
var oldText=$.trim(objTD.text());//保存td中原有的文本
var input=$("<input type='text' value='"+oldText+"'>")
objTD.html(input);
input.click(function()
{
return false;
});
//设置文本框样式
input.css("border-width","0px");
input.css("font-size","15px");
//input.height($(this).height);
input.width(objTD.width());
input.css("text-align","center");
input.trigger("focus").trigger("select");(opera中需先触发focus事件)
//文本框失去焦点事件
input.blur(function()
{
var inputText=$(this);
if(inputText.val()!=oldText)
{
if(inputText.val()=="")
{
alert("该字段名称不能为空!");
objTD.html(oldText);
return;
}
var caId=$.trim(objTD.prev().text());
var url="../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(inputText.val())) +
"&caId="+caId+"&t="+new Date().getTime();
//AJAX异步处理数据库
$.get(url,function(data)
{
if(data=="false")
{
alert("修改失败!");
inputText.trigger("focus").trigger("select");
}
else
{
alert("修改成功!");
objTD.html(inputText.val());
}
});
}
else
{
objTD.html(inputText.val());
}
});
input.keydown(function(event)
{
var jianzhi = event.keyCode;
var inputText=$(this);
switch(jianzhi)
{
case 13:
if(inputText.val()!=oldText)
{
if(inputText.val()=="")
{
alert("该字段不能为空!");
objTD.html(oldText);
return;
}
var caId=$.trim(objTD.prev().text());
var url="../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(inputText.val())) +
"&caId="+caId+"&t="+new Date().getTime();
//AJAX异步处理数据库
$.get(url,function(data)
{
if(data=="false")
{
$("#errorText").text("修改失败!");
inputText.trigger("focus").trigger("select");
}
else
{
alert("修改成功!");
$("#errorText").text("");
objTD.html(inputText.val());
}
});
}
else
{
objTD.html(inputText.val());
}
break;
case 27:
$("#errorText").text("");
objTD.html(oldText);
break;
}
});
});
});
但是在IE6中 响应按键事件keydown后会自动触发失去焦点事件导致运行了两次异步处理数据库有什么办法解决吗?
$(document).ready(function()
{
$(".caname").click(function()
{
var objTD=$(this);
var oldText=$.trim(objTD.text());//保存td中原有的文本
var input=$("<input type='text' value='"+oldText+"'>")
objTD.html(input);
input.click(function()
{
return false;
});
//设置文本框样式
input.css("border-width","0px");
input.css("font-size","15px");
//input.height($(this).height);
input.width(objTD.width());
input.css("text-align","center");
input.trigger("focus").trigger("select");(opera中需先触发focus事件)
//文本框失去焦点事件
input.blur(function()
{
var inputText=$(this);
if(inputText.val()!=oldText)
{
if(inputText.val()=="")
{
alert("该字段名称不能为空!");
objTD.html(oldText);
return;
}
var caId=$.trim(objTD.prev().text());
var url="../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(inputText.val())) +
"&caId="+caId+"&t="+new Date().getTime();
//AJAX异步处理数据库
$.get(url,function(data)
{
if(data=="false")
{
alert("修改失败!");
inputText.trigger("focus").trigger("select");
}
else
{
alert("修改成功!");
objTD.html(inputText.val());
}
});
}
else
{
objTD.html(inputText.val());
}
});
input.keydown(function(event)
{
var jianzhi = event.keyCode;
var inputText=$(this);
switch(jianzhi)
{
case 13:
if(inputText.val()!=oldText)
{
if(inputText.val()=="")
{
alert("该字段不能为空!");
objTD.html(oldText);
return;
}
var caId=$.trim(objTD.prev().text());
var url="../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(inputText.val())) +
"&caId="+caId+"&t="+new Date().getTime();
//AJAX异步处理数据库
$.get(url,function(data)
{
if(data=="false")
{
$("#errorText").text("修改失败!");
inputText.trigger("focus").trigger("select");
}
else
{
alert("修改成功!");
$("#errorText").text("");
objTD.html(inputText.val());
}
});
}
else
{
objTD.html(inputText.val());
}
break;
case 27:
$("#errorText").text("");
objTD.html(oldText);
break;
}
});
});
});
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货