用jquery form插件,进行ajax提交,本来可以用,好好地,突然发现,firefox,opera等可以提交,ie的success函数运行了。
花了三个钟头,反复查,发现,原来是改了处理页面的返回头信息。
加上了 application/x-javascript ,ie8就不干活了。
如果是text/html,就行,或者不指定也行。
算bug不?让我问候一下写这段代码的ie开发人员吧。
ajax的头信息,编码看来都要注意哎。
用jquery form插件,进行ajax提交,本来可以用,好好地,突然发现,firefox,opera等可以提交,ie的success函数运行了。
花了三个钟头,反复查,发现,原来是改了处理页面的返回头信息。
加上了 application/x-javascript ,ie8就不干活了。
如果是text/html,就行,或者不指定也行。
算bug不?让我问候一下写这段代码的ie开发人员吧。
ajax的头信息,编码看来都要注意哎。
jquery再遍历选定的对象时候用each比较方便。有种应用是找到里面符合条件的对象后,要跳出这个循环。
javascript的跳出循环一般用break.
同事遇到这个问题,下意识 的用了break,想跳出这个循环。结果报错
SyntaxError: unlabeled break must be inside loop or switch
经查,应该用一个
return false;
continue是跳出当前循环,继续下一个循环。
其实是很简单的,一个或多个页面有一堆摄影作品,用户点击投票,相应的作品数量增加1.
前台jsp部分的代码如下:
... 票数:<span id="i<%=id%>"><%=vote_number%></span><br/> <a onclick=myvote(<%=id%>); href='javascript:;'">投票</a> ...
js部分的代码如下
function myvote(id){ $.post("vote.jsp", { id: id }, function(data){ eval("var data="+data); if (data.issucc=="0"){ alert(data.mess) }else{ //alert("更新页面"); $("#i"+data.myid).html(data.votenum); } }); }
后台返回的json数据如下
{issucc:<%=issucc%>,mess:”<%=mess%>“,votenum:<%=votenum%>,myid:<%=myid%>}
issucc:是否成功
mess:信息,主要是错误信息,比如没登录,超过限制等
votenum:投票后的得票总数
myid:投票的id,用于更新页面的投票数。
<script language="JavaScript" src="/include/jquery-latest.pack.js"></script> <script language=JavaScript> var tmp=""; function formatn(n){ if (n<10) return "0"+n; else return ""+n; } $(document).ready(function() { var f=document.form1.elements; var n_i=1; var s_i=""; var n_v=1; for(var i=0;i<f.length;i++){ //tmp+=f[i].value+"\n"; if (f[i].type=="hidden"||f[i].name=="reg_no" ){ continue; } if (f[i].type=="text"||f[i].type=="textarea"){ f[i].name=f[i].id="text_"+formatn(n_i); n_i++; continue; } if (f[i].type=="radio"||f[i].type=="checkbox"){ var oname=f[i].name; f[i].name=f[i].id="check_"+formatn(n_i); f[i].value=formatn(n_v); if (i<f.length){ if (oname!=f[i+1].name||f[i].type!=f[i+1].type){ n_i++; n_v=1; } else n_v++; } continue; } } }); </script>
原来一直能用的ecshop后台信息发布里面的fckeditor上传功能,换了个机器后不能用了。以为是文件损坏,上传一边不行。
什么xml错误,还弹出一个大的JavaScript alert警告框,内容就是服务器端错误的500内容
网上搜,又说是配置问题,主题问题,想想都不应该,直接请求
filemanager/connectors/php/connector.php
出了服务器的500错误,html文件能访问,txt也行。
后来从根目录开始查,发现到fckeditor目录里面的php文件开始不能访问。
改了fckeditor目录的属性为755,问题解决。
filter will select a certain subset (zero or more) of the already
selected elements.
jquery的filter将在一组已经选取的元素里面选择
find will select a set of (zero or more) elements that are descendants
of the already selected elements.
jquery的find将在一组已经选取的元素的子节点里面选择
Here is an example:
示例如下
<div class="peanuts"> <p class="elephants"></p> </div> <div class="elephants"> <p></p> </div>
$(‘div’).filter(‘.elephants’); // <-- selects the second div, because it has class="elephants" $('div').find('.elephants'); // <-- selects the first paragraph, because it has class="elephants" * Note that these two examples are very simple and would probably be better written as ... $('div.elephants'); ... and ... $('div .elephants');
找到一本ext中文手册,pdf版本的。看着不错。
ext-中文手册下载.pdf
做财务的东西总是比较有挑战的,性能,易用性,准确性都有很高要求,包括一些小的细节。
比如金额需要显示的时候转换成有千分位,小数点后保留2位等。去编辑的时候,又要格式化,把逗号都去掉。网上找了段代码,但是再次编辑会有问题,修改了一下,代码如下:
function outputMoney(number) { number=number.replace(/\,/g,""); if (isNaN(number)||number=="") return ""; number = Math.round( number*100) /100; if(number<0) return '-'+outputDollars(Math.floor(Math.abs(number)-0) + '') + outputCents(Math.abs(number) - 0); else return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0); } function outputDollars(number) { if (number.length<= 3) return (number == '' ? '0' : number); else { var mod = number.length%3; var output = (mod == 0 ? '' : (number.substring(0,mod))); for (i=0 ; i< Math.floor(number.length/3) ; i++) { if ((mod ==0) && (i ==0)) output+= number.substring(mod+3*i,mod+3*i+3); else output+= ',' + number.substring(mod+3*i,mod+3*i+3); } return (output); } } function outputCents(amount) { amount = Math.round( ( (amount) - Math.floor(amount) ) *100); return (amount<10 ? '.0' + amount : '.' + amount); }
用法:
<input name="TRANS_AMOUNT" type="text" id="TRANS_AMOUNT" size="15" onblur="this.value=outputMoney(this.value);" />
2009-04-28 更新
jquery是个好东西,现在有很多基于它的plugin,tablesorter 就是一个。
上面有好多例子,就不转贴了。最近做了一个小东西,用到了它。
因为是财务的东西,金额用到了千分位,就是每多三位,加一个逗号。原来用都是按照数字来的,加了这个逗号之后,tablesorter不认为它是数字了,他认为234.00比1,234.53大。这也难怪,看了例子,如果是这种货币格式,前面如果是$符号的话,这种格式排序是没问题的。
仔细看了一下文档,原来人家已经考虑到了这样的问题,加下面代码就可以了。
$("#myTable").tablesorter({ headers: { 4: {sorter:"currency"}} });
测试通过
另:推荐一篇关于中国教育讨论的文章