‘Javascript’ 分类的存档
今天遇到IE6下的submit不好使,baidu之后留下来了。
一般在A标签下面,
$(’submitA’).onclick = function(){
$(’formId’).submit();
}
如果你的写法像上面一样,
这时候会发现IE6下面提交不了表单。解决的办法有两种
一、把A标签换个写法
把其中的javascript:void(0)换成#就可以了
二、在javascript里面,对submit动作处理一下
$(’submitA’).onclick = function(){
setTimeout(function(){$(’formId’).submit();},0);
}
用jquery一直都是用的异步传输,习惯了,今天在做表单提交验证一个字段的惟一性的时候,同样是用了异步,问题就出现了。
var checkwap=function(){
var total;
$.ajax({
url:’bsmajax.php?type=checkwap’,
type:’GET’,
async:false,//原来是true,
cache:false,
data :{wapnum:$(’input[id=wapnum]‘).val()},
dataType :’json’,
success :function(json){
total=json.total;
}
});
return total;
};
alert(checkwap());//开始的时候怎么也得不到值,以为是jquery关于变量作用域的访问问题
多加了几个alert();后才觉悟,因为是异步的,alert(checkwap());先执行了,等ajax成功返回数据后total才有值。
因为在表单提交的验证是要实时的,所以就 async:false 了,变成同步的。
当我以为是变量作用域问题时,在GOOGLE里搜索时,也有人犯这样的迷糊,现在记下来。
今天在修改dedecms的时候,js里给一个元素定义了一个方法
var dopost=function(){}
FF下面debug的时候,奇怪的报dopost is not a function,实际上是已经定义了。
找了半天才知道,dedecms里面有一个隐藏input 它的name=dopost,就是这个原因,命名冲突了
只要把定义的方法改个名字
var doajax=function(){}
就OK了。
终于在目录里增加了这一分类,js的经验都是在改站的过程中积累的,对DOM有一定了解,现在学习了jQuery的官方手册HTML版本,觉得挺好,没钱买书看,不知道是否有差距。以后将多研究下JS。









