在项目中,使用了thickbox生成表单页面a.jsp。
在a.jsp中使用了ajax从数据库中判断填入的用户名是否重复。
代码如下:
$.get('hmdicAction.action',{'manage.FDicname':fname},function(res){
if(res=='error'){
$('#nameErr').attr('innerHTML', '该名称已存在,请重新输入');
$('#Txt_Name')[0].value="";
$('#Txt_Name').focus();
return;
}else if(res=='nullname'){
$('#nameErr').attr('innerHTML', '名称不允许为空');
$('#Txt_Name')[0].value="";
$('#Txt_Name').focus();
return;
}else if(res=='ok'){
$('#nameErr').attr('innerHTML', '');
alert('OK');
return;
}
});
但是发现,在连续多次新建a.jsp时,当输入的用户名相同时,并没能执行hmdicAction.action,而是返回了上次执行hmdicAction.action的结果,好像进行过缓存似的,由于对thickbox及jquery不熟,将问题定位在jquery中,
后来问高手,得之是IE在作祟。。
*************************************解决:*************************************
在调用ajax传入参数时添加时间参数,这样,每次url都不相同,就不会被IE误认为是一个请求喽~~~
$.get('hmdicAction.action',{'manage.FDicname':fname,'ttime':d.getTime()},function(res){
完整代码如下:
var d=new Date();
$.get('hmdicAction.action',{'manage.FDicname':fname,'ttime':d.getTime()},function(res){
if(res=='error'){
$('#nameErr').attr('innerHTML', '该名称已存在,请重新输入');
$('#Txt_Name')[0].value="";
$('#Txt_Name').focus();
return;
}else if(res=='nullname'){
$('#nameErr').attr('innerHTML', '名称不允许为空');
$('#Txt_Name')[0].value="";
$('#Txt_Name').focus();
return;
}else if(res=='ok'){
$('#nameErr').attr('innerHTML', '');
alert('OK');
return;
}
});